作者robinnpca (rob)
看板Ajax
標題[問題] 請問jquery向自己本頁進行ajax有用嗎?
時間Fri Dec 16 15:35:26 2011
補充請問ajax的順序問題
突然想到
例如網頁中會依據滑鼠會出現很多新的div
使用的是clone然後放置新位置的方式
在這一個function結束的末尾..
要call另外一個ajax的funtion
這樣子
因為div會隨滑鼠移動不斷出現新的
會是下列哪一種情況??
1.DIV出現->ajax成功回應完成後->下一個DIV
2. DIV出現->ajax進行中..不用等這個ajax結束(因為滑鼠不斷在動)
馬上可以進行另外一個DIV出現->ajax進行(這一個ajax跟上一個ajax是同一個function
這樣子要等到上一個的ajax結束後才會排隊換到第二個ajax嗎?)
舉例子請教:
(1)function add_div(){
....
....
(11) ajaxwork(傳參數過去);
}
(2)function ajaxwork(接受參數){
(22)$.ajax{....}
}
是
1.(1)->(11)->(2)->(22)->..一定要完結才開始另外一個重複循環(1)->....
2.(1)->(11)->(2)->...進行中
另外一個
(1)->(11)->(2)...也可進行不用等上面結束?
再來裡面遇到(2)ajax時需不需要 等上一個(2)進行完 才會進行下一個(2)?
先講一下!可能這問題有點怪
只是我在猜想可不可行
想請教
網頁中
有很多次會去clone本頁中的一個div
並去select出來改參數重新放入新位置
因為次數過於繁複
在瀏覽者等待的過程中
很有可能不耐煩...>__<
所以
請問
如果我在本頁中
以ajax的方式對其索求其clone的動作
可行嗎?
也就是系統一邊clone改參數放入
一邊又在運行網頁中的其他function?
這樣子網頁一直在運行不會變成瀏覽者一直等待..
但是 ajax是不是只能跟sever進行溝通
不能跟自己的client進行溝通?這我不是很清楚!請教..
另外可能敘述不是很清楚
舉例例如
function clonediv(lefts){
newdiv=$("#model").clone(true);
$(newdiv).css("left",lefts);
}
var lefts=10;
$("
#mainlayer").mousemove(function(){
$.ajax({
url: 'self.html',
type: 'POST',
dataType: 'html',
timeout: 1000,
data: {lefts:lefts},
error: function(){
alert('Error loading XML document');
},
success: function(response){
clonediv(response);
// do something with xml
}
});
lefts=lefts+10;
}
這裡我其實不太清楚怎麼寫 如dataType 和寫自己的網頁有用嗎?(self.html)
還有這裡不知道如何去寫『接收』傳過來的data...
目的:在id=mainlayer上的 mousemove事件會觸發 自己網頁上 clonediv事件
將內容由ajax非同步慢慢去出現新的div
同時也讓我網頁上的其他功能能繼續...
還是直接告訴我這不可能...>_<
--
寧願天空是藍色~
也不願心情是藍的!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.17.52.209
推 bibo9901:用不到ajax啊@@ 硬要用也可以, 但我想未必比較快 12/16 15:41
→ robinnpca:我想說這可以去掉等待的時間嗎?類似慢慢出來圖片的感覺 12/16 17:01
→ robinnpca:可以怎麼寫嗎?還是真的不會較快~那就放棄了.. 12/16 17:01
推 musie:要避免load圖的時間 請用lazy load 12/16 17:21
→ robinnpca:歐!lazy load是load圖,我查一下也可用在div層嗎? 12/16 22:04
→ robinnpca:查了一下好像不能用在其他方面只能用在圖 12/17 11:40
→ mesak:用SETTIMEOUT 延遲載入就好啦? 12/18 11:40
→ robinnpca:延遲載入也需要排隊嗎?問題再次補充了一下... 12/19 10:55
※ 編輯: robinnpca 來自: 163.17.52.209 (12/19 10:58)
※ 編輯: robinnpca 來自: 163.17.52.209 (12/19 10:59)