Safari XHR 上传卡住(有时)

发布于 2024-11-17 13:49:45 字数 375 浏览 0 评论 0原文

我使用 jquery-File-Upload 构建上传脚本。

现在我有一个奇怪的行为,上传时不时地卡住(假设每八次)。这只发生在 Safari (5.0.5) 中,其他浏览器工作正常。

我可以确认这与服务器无关。该问题在执行任何服务器脚本之前发生。

有时上传卡在 2%,有时卡在 82%。

我也发现很难调试。当使用 Charles 时,问题就消失了。

任何有关问题和调试策略的帮助表示赞赏。

I build a upload script using jquery-File-Upload.

Now I have the weird behavior that the upload stucks from time to time (let's say every eighth time). This only happens in Safari (5.0.5), other browsers are working fine.

I can confirm that this is NOT server related. The problem accours before any server scripts are executed.

Sometimes the upload stucks at 2%, sometimes at 82%.

Also I find it hard to debug. When using Charles the problem seams to disappear.

Any help regarding the issue and debugging strategies appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春庭雪 2024-11-24 13:49:45

事实证明这个解决方案 作者:Ben 解决了这个问题。

如果您使用 jquery-File-Upload 它看起来像这样(注意:我是使用 v4 版本):

$(function () {
        $('#file_upload').fileUploadUI({
            //some other code
            beforeSend: function (event, files, index, xhr, handler, callBack) {
                $.ajax({
                    async: false,
                    url: 'closeconnection.php'
                });
                callBack();
            }
        });
    });

相应的 php 脚本如下所示:

<?php
    header("Connection: Close");
?>

搞什么??

这和 Safari 缓存有关系吗?或者仍然打开 POST 请求?如果您有任何想法,请告诉我...

Turns out that this solution by Ben fixes the issue.

In case you use jquery-File-Upload it looks like this (caution: i'm using the v4 version):

$(function () {
        $('#file_upload').fileUploadUI({
            //some other code
            beforeSend: function (event, files, index, xhr, handler, callBack) {
                $.ajax({
                    async: false,
                    url: 'closeconnection.php'
                });
                callBack();
            }
        });
    });

Where the corresponding php script looks like this:

<?php
    header("Connection: Close");
?>

WTF??

Does this has something to do with Safari caching? Or with still open POST requests? Let me know if you have any idea...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文