2

所以我正在做一个非常基本的ajax请求,但我不能让它在chrome中成为非阻塞的。这个请求有什么问题吗?IE 处理得很好,但 chrome 完全冻结了几秒钟。chrome 停止冻结后会触发 timeout 事件。

    setTimeout(this.onExtendedSaveTimeCallback, 1000);

    this.isSaving = true;
    this.request = $.ajax({
        url:      'http://same-origin.com',
        type:     'POST',
        dataType: 'html',
        data:      data,
        async:     true,
    });

    this.request.done(function(response) {
        self.isSaving = false;
        self.$rootElement.find('.save').removeClass('saving');
        if(response != "SUCCESS")
        {
            // The input did not pass validation
            // Show the error message
            self.$rootElement.find('.edit-mode-content').prepend(response);
            self.$rootElement.find('.error').slideDown(200);
            self.$rootElement.find('.save').html('Spara');
            self.unblockRowInput();
        }
        else
            self.close(true);
    });
4

2 回答 2

2

我不认为它的ajax调用。在创建 ajax 数据参数时,我看到过类似的情况,浏览器阻塞,成本很高。根据您进行循环/dom 遍历的方式,跨浏览器的性能可能会有很大差异。要进行验证,请尝试提交 ajax 请求而不执行创建数据参数的工作。

于 2012-11-04T16:59:39.143 回答
0

后面加逗号async: true,……是故意的吗?

于 2012-11-04T17:01:36.443 回答