我知道這題可能沒有人回答.. 算了, 習慣了, 沒人答就路過的大大隨便答吧~ >_<
我正在開發 Ajax 的 JavaScript 程式, 測試時, 發現重大的問題~
IE 7.0 同時建立兩個新的 XMLHttpRequest 物件, 並且下載檔案, 都能順利取回.
而同樣的程式, Mozilla FireFox 2.0 建立兩個新的 XMLHttpRequest 物件, 同一瞬間, 新的卻把舊的給取代掉了, 也就是說一次只能下載一個檔案, 這樣根本是嚴重的問題, 變成一個要等一個, Queue 在那裡了 >_< 拖垮整體運作效能... 未免也太遜了吧~
不知道有沒有哪位大大寫過這方面程式, 麻煩幫我測一下看看, 是不是會遇到跟我一樣的情形.. 不知有無辦法克服?... >_<
我確認的項目如下:
1. 確實建立了兩個 "新的" 物件, 此部份測試ok
2. 我是用 onreadystatechange 事件, 同時進行.
3. 我利用 FireFox 的錯誤主控台, 任何錯誤訊息均能確認清楚, 也打開 IE 的完整錯誤訊息, 因此兩方比較, 並利用 alert() 來雙確認, 避免誤判.
4. 測試的兩個檔案均為不到 1kb 的 XML 檔案, 這也是實際要用到的資料大小, 就是這麼小的檔案所以更是在一秒鐘之內就兩個都取回了.
~感謝~
註: 詳細版本編號
IE 7.0.5730.11 英文版
Mozilla FireFox 2.0.0.1 繁體中文版
2006-12-23 15:44:04 · 2 個解答 · 發問者 志國 7 in 電腦與網際網路 ➔ 程式設計
感謝--流浪玩家--大大熱心寫 code 協助測試^_^
2006-12-24 17:38:58 · update #1
感謝--蚯蚓--大大也來參與^_^ 事情是醬的,下一個會把前一個給取代掉,所以您提的方法也一樣結果.
2006-12-27 16:47:47 · update #2
不是兩個 request 嗎?
改成這樣不就好了?
window.onload=function(){
req=(window.ActiveXObject)?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
req.open("GET","test_1.txt");
req.onreadystatechange=function(){
if(req.readyState==4){
document.getElementById('ajax_1').innerHTML=req.responseText;
}
}
req.send(null);
//
req2=(window.ActiveXObject)?new ActiveXObject("MSXML2.XMLHTTP"):new XMLHttpRequest();
req2.open("GET","test_2.txt");
req2.onreadystatechange=function(){
if(req2.readyState==4){
document.getElementById('ajax_2').innerHTML=req2.responseText;
}
}
req2.send(null);
}
2006-12-28 23:43:41 補充:
改成兩個 request, 結果如預期:
http://211.20.181.250/~happyman/ajex.html
IE6, firefox 1.5, 2.0 都是正確的耶!
有沒有 code 跟實際應用?
google maps 拼地圖感覺應該不會很慢吧?
2006-12-27 16:18:33 · answer #1 · answered by Chiu 4 · 0⤊ 0⤋
這個可能是瀏覽器的標準問題,
以下列的程式為例:
2006-12-25 08:44:51 · answer #2 · answered by 流浪玩家 6 · 0⤊ 0⤋