什麼會是一個更好的解決方案 看事實,我需要的 新的數據每一秒,從 拉客戶端或服務器推?
我認爲這並不重要,因爲請求和新數據可用的時間相當短。我會在前一個成功後在客戶端實例化一個新的XMLHttpRequest。您可以向服務器發送最後收到的數據(如果不是太大),以便可以將該數據與服務器上可用的當前數據進行比較,並且只在新數據可用時才發回。
而且該項目的ID是在 服務器端(與變量的那 ID GOT)可以改變,當客戶端 刷新頁面,他需要得到 最古老的(生活)的ID。這會 的意思是我的客戶端的我的jQuery/JavaScript的 必須知道他在網頁上得到哪個ID ,什麼是 做到這一點的最佳途徑?
我不完全相信我理解你的意思,但如果我是對的,你可以將每個名稱/值對存儲在一個對象中。當新變量到達客戶端時,它不會覆蓋現有數據;當某個變量已經存在時,它會用最新值更新。它可能看起來像:
{ first_variable: 345,
second_one: "foo",
and_the_third: ["I", "am", "an", "array,", "hooray!"]
}
而當second_one
一個新的狀態到達時,如"bar"
,對象更新爲:
{ first_variable: 345,
second_one: "bar",
and_the_third: ["I", "am", "an", "array,", "hooray!"]
}
最後一件事是,我不能找到一個很好的 (不貴)彗星庫/ API 的asp.net(C#)。任何人都曾使用過一個 彗星庫,效果很好?
我沒有任何與ASP.NET的經驗,但你需要這樣一個庫嗎?你能不能自己編寫服務器端代碼,正如我所說的那樣,將連接保持打開並定期(不斷地)將當前狀態與先前發送的狀態進行比較?
UPDATE:要顯示它並不難保持連接在服務器端開放,我會告訴你一個長輪詢模擬我在PHP中寫道:
<?php
sleep(5);
?>
<b>OK!</b>
相反讓過程sleep
幾秒鐘,您可以輕鬆測試循環中狀態的變化。而不是發送任意的HTML元素,你可以發回數據,例如在JSON表示法中。我無法想象在ASP.NET/C#中這很難做到這一點。
我確實在你提到的最後一件事情上找到了一些很好的教程,保持連接打開並接收發送http請求。現在的問題是,我不知道如果我自己編寫每一部分,它會變得多快。 無論如何,我今天晚些時候會嘗試它,但可能需要很長時間。 另外我有4個標準div的應該得到一個ID時,頁面加載。在此之後,它每隔一秒更新一次,它會查看div的ID並將正確的值放在那裏。這很像你現在看到更多的一分錢拍賣。無論如何感謝您的迴應!希望更多的人做出反應。 – Julian 2010-08-23 12:57:59
@Julian - 我還不確定我是否正確理解你。在JavaScript中操作DOM非常容易。如有必要,您可以隨時提出新問題,但SO上已存在許多問題。我不參加我們國家的一分錢拍賣。 ;) – 2010-08-23 13:13:46
是的,也許這只是我。我通常是C#winform開發人員,但還沒有真正進入html/javascript的東西。但是我們需要構建的應用程序不像一分錢拍賣,但您可以每秒都想到同樣的更新。 – Julian 2010-08-23 13:22:14