作者warmstar (鋼鐵筋肉人)
看板Ajax
標題[問題] .getJSON放在jquery.submit裡不會被執行
時間Tue Oct 1 21:52:39 2013
我想在使用者上傳圖片時顯示上傳的進度
但是getJSON的request在chrome底下不會執行
在firefox裡卻是正常的
感覺是在chrome底下submit後其他的request都被擋住了
$(function() {
// do something ...
$("#upload").submit(function(){
// do something ...
// Update progress bar
function update_progress_info() {
$.getJSON("/upload_progress/", {'X-Progress-ID': uuid},
function(data) {
// update progress ...
}
});
};
setInterval(update_progress_info, 1000);
});
});
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.210.53
1F:→ kerash:submit 後沒把 event 停掉不是會直接送出嘛...0.0? 10/01 22:15
2F:→ warmstar:sorry 我是新手,code是用網路上的範例改的 10/01 22:25
3F:→ warmstar:所以是說submit後的其他request都會被擋住嗎??? 10/01 22:26
4F:→ warmstar:可是在firefox底下getJSON卻可以正常被執行 10/01 22:27
5F:→ kerash:因為沒看到完整的code其實不確定你寫的是怎樣 10/01 22:28
7F:→ warmstar:有看過官方文件但是裡面似乎沒有提到在submit裡加入 10/01 22:36
8F:→ warmstar:ajax request,我是參考這個範例寫出來的 10/01 22:37
10F:→ kerash:在 setInterval 後面加個 event.preventDefault(); 看看 10/02 12:46
11F:→ warmstar:用preventDefault原本的submit就會取消 10/02 15:11
12F:→ warmstar:但是我需要submit被執行 10/02 15:12
13F:→ danny8376:當submit之後就代表切換頁面了 瀏覽器本來就沒理由 10/02 18:51
14F:→ danny8376:要繼續做事 要顯示進度的話 正規作法用XHR2來上傳 10/02 18:51
15F:→ danny8376:不然就內嵌一個iframe去上傳 10/02 18:52
16F:→ danny8376:不過IE10才開始支援 所以iframe至少也是fallback... 10/02 18:53
17F:→ danny8376: ^ XHR2 10/02 18:54
18F:→ warmstar:謝謝 我去研究一下XHR2 10/02 21:51
19F:推 qwer820404:不要直接submit出去 等progress bar完再trigger呢? 10/02 22:12
20F:→ danny8376:那也做不到真正的progress bar啊 頂多寫uploading 10/03 00:41
21F:→ danny8376:要用XHR2可以 不過iframe的fallback也要做 10/03 00:43
22F:→ danny8376:除非直接把IE6-9全都拒絕 那就沒差 10/03 00:43
23F:→ qwer820404:在事件裡面set timer 後端寫成服務 等到上傳100%了 10/03 10:37
24F:→ qwer820404:再trigger submit? 10/03 10:37
25F:→ danny8376:都還沒submit出去怎有進度啦XD 不然就連submit都 10/03 12:12
26F:→ danny8376:不需要用到了啦www 10/03 12:12
27F:→ TonyQ:其實看不是很懂原本的需求 10/03 18:37
28F:→ TonyQ:不然submit target 到另一 iframe 等 submit 完再手動切換? 10/03 18:38