2

だから私はかなり基本的なajaxリクエストを行っていますが、Chromeでノンブロッキングにすることはできません。このリクエストに何か問題がありますか?IEはそれをうまく処理しますが、クロムは数秒間完全にフリーズします。タイムアウトイベントは、chromeがフリーズを停止した後に発生します。

    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 に答える