作者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