1

jqueryでAjaxロード関数を使用して、DOMに別のページをロードしています。これを使うことで

$('.upload').on('click',function(){

 $('.content').load('loo.php');

});

これを使用すると、分割コンテンツのページが 3 ~ 4 秒間隔で読み込まれます。

その間隔を使用してプログレスバーを表示したかったので、この方法を使用しました

$('.upload').on('click',function(){

       $.ajax({
           url: 'loo.php',
         beforeSend:function(){

           res.container.append(res.loader); //Showing loader

         },
         success:function(){

            $('.content').load('loo.php');
             res.container.find(res.loader).remove(); //Hiding Loader 

               }

       });

});

そのため、ローダーが表示されて数時間表示された後、ページが分割されてロードされますが、問題は、ローダーが非表示になった後のページのロードに再び遅延が見られることです。その時間を克服するためにローダーを作成しましたが、それでもローダーが起動してから時間がかかります。

firebug では、リクエストを分析することにより、ローダーの後にページの読み込みが開始されますが、これは望ましくありません。任意のアイデア、この問題を克服する方法。

4

2 に答える 2

2

AJAXリクエストが完了する前に「ローダー」を削除しています。load() が終了したら、コールバック関数でローダーを削除する必要があります。また、二重の AJAX リクエストも必要ありません。

$('.upload').on('click',function(){
   res.container.append(res.loader); //Showing loader
  $('.content').load('loo.php', function(){
             res.container.find(res.loader).remove(); //Hiding Loader 

    });
});
于 2012-12-02T16:34:14.937 に答える
1

load()どちらも ajax 呼び出しをajax()実行しますが、これはおそらく意図したものではありません。代わりにこれを試してください:

$('.upload').on('click',function() {
    $.ajax({
        url: 'loo.php',
        beforeSend: function() {
            res.container.append(res.loader); //Showing loader
        },
        success: function(data) {
            // add the content to the DOM instead of loading it again
            $('.content').html(data); 
            res.container.find(res.loader).remove(); //Hiding Loader 
        }
    });
});
于 2012-12-02T16:42:10.280 に答える