2

Web ページで ajax リクエストを呼び出す一般的な方法を作成しようとしています。投稿リクエストを非同期的に呼び出すための小さな拡張メソッドを作成しました。

$.tiqPost = function(action,data,callback)
{
    alert('Posting...');
    $.fancybox.showActivity();
    $.ajaxSetup({async:true});
    $.post('/portfolios/mod/t:'+action+'/',data,function(response)
    {
        callback(response);
        $.fancybox.hideActivity();
        alert('Finished Post.');
    });
    alert('Posting Set.');
}

ただし、このリクエストが発生するたびに、私のページは無期限にフリーズします。Chrome の一部のバージョンでは、フィードバックなしでフリーズします (クリックが機能しなくなり、タブを閉じることができません)。ただし、他のほとんどのブラウザでは、「投稿中」と表示され、「投稿セット」または「終了した投稿」に到達せずに停止します。

そのため、Chrome はエラーを検出せず、フリーズするだけです。これは私にとって非常に不可解です。誰にもヒントがありますか (または単に別の実装でさえありますか)?

編集:

これは、すべてのリクエストで発生するわけではありません。実際、機能するケースと機能しないケースをいくつか投稿させてください。持続する...

編集 編集:

したがって、この例では

$.tiqPost('newcat',{t:"n"},function(response)
                {
                    if(response)
                    {
                        $tabs.tabs('add','#tiq-tab-'+response,"New Category",0);
                    }
                });

問題はありません。でも:

$(this).bind('blur',function(postdata)
    {
        //blur
        if(postdata==null)
            postdata = {value:$(this).text()};
        $.tiqPost($(this).attr('id').replace('tiq-submit-',''),
            postdata,
            function (response) {
                $(this).text(response);
            });
        $(this).removeClass('tiq-editable-editstate');
        $(this).attr('contentEditable','false');
    });

凍結の原因となります。

4

1 に答える 1

1

does doing

$.post('/portfolios/mod/t:'+action+'/',data,function(response)
    {
        callback(response);
        alert('Finished Post.');
    });

alone, works? if it does, then you may have a problem configuring the function itself

于 2012-05-22T06:45:03.243 に答える