2

セットアップ - HTML 送信ボタンを介した POST として多くの条件を含む大規模な検索。最初のバイトがサーバーによって送信されて結果ページの読み込みが開始されるまでに数秒かかる場合があります。

http://api.jquery.com/unload/は廃止されました (バージョン 1.8 の時点)。次のことを行う正しい方法を探しています...

誰かが検索ボタンをクリックすると、ボタンのテキストを「検索中...」に設定してユーザーに少しのフィードバックを提供し、送信を続行できるようにします (true を返します)。

    $('#dosearch').click(function() { 
        $(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
        return true; 
    });

アンロード中、私は現在これを行っています:

   $(window).unload(function() {
        $('#dosearch').html('<i class="icon-search"></i> Search');
    });

beforeunload へのバインドを試みましたが、ブラウザーが新しいページのレンダリングを開始した直後 (良い) ではなく、送信が発生するとすぐに起動します (悪い)。

問題は、検索をクリックしてブラウザの [戻る] ボタンをクリックした場合です。 その場合、Searching... テキストは引き続き表示されます。

私がここで試みていることを行うための正しい/適切な方法は何ですか?

注: (I タグの理由は、素晴らしいフォントを使用しているためです)。

4

2 に答える 2

1

空のイベント ハンドラをアンロードにバインドすることは機能しているように見えますが、これはハックのようなものです。

    $('#dosearch').click(function() { 
        $(this).html('<i class="icon-spinner icon-spin"></i> Searching...');
        return true; 
    });

    $(window).on("load", function(){ 
        $('#dosearch').html('<i class="icon-search"></i> Search'); 
    });

    $(window).on("unload", function(){ 
        // Leave this blank handler here or onload won't fire on IE or FF when you click back button 
    });

説明については、この質問を参照してください。

于 2013-04-15T17:15:11.327 に答える
0

ユーザーが履歴をさかのぼる場合、それはページを新しくレンダリングしたかどうかを意味しますか? そのため、ページが読み込まれるたびに、値を必要な値にリセットできます。

それは何かでしょうか?

于 2013-04-15T16:07:53.390 に答える