我想知道Gmail(或任何其他人)如何在Opera上實現彗星。Gmail如何在Opera上做彗星?
這是我迄今從我的實驗中知道的。
- 它不使用在Opera 10.51中損壞的event-source標籤。
- 它不使用顯示旋轉跳動和忙碌鼠標光標的iframe。
- 當readyState = 3時,它不會在xmlhttprequest上使用responseText,這已知會在Opera上損壞。
我試着看它是如何在mibbit和etherpad中完成的,我發現它們都使用長輪詢。
賞金
賞金去誰可以告訴我的方法不是「事件源」爲歌劇Comet流,或如何Gmail也流(或者,如果長輪詢它確實是)更好。
即http://closure-library.googlecode.com/svn/docs/closure_goog_net_browserchannel.js.html 覺得你實際上是在尋找什麼在這裏: http://closure-library.googlecode.com/svn /docs/closure_goog_net_channelrequest.js.source.html 搜索pollResponse_和getNextChunk_ :) – hallvors 2010-04-19 13:40:58
你能成爲一個更具體一點?我覺得我已經給予了足夠的慷慨獎勵,而不僅僅是一個巨型抽象圖書館的鏈接。 – Unknown 2010-04-19 22:26:51
嗯,我覺得這應該留給傑森,因爲他給了Closure原始指針,我只是深入一點。看看這個源代碼,它似乎使用了一個異步的XMLHttpRequest,確實有一個超時負責輪詢responseText並處理傳入的數據。當chunked數據進入時,Opera並沒有觸發幾個readystatechange事件(我認爲Firefox主要是因爲一個令人意外的事故 - 目前沒有標準或文檔要求這種實現,據我所知)。所以不要期待多個readystatechange事件使用超時。 – hallvors 2010-04-20 13:56:18