2013-07-22 35 views
0

請參閱下面的代碼。我想在php頁面上自動刷新div。我試圖通過JavaScript和HTML標題刷新,但它正在慢慢地放慢我的電腦。自動刷新運行在php頁面上的ajax div

使page2.php

<?php 

if($_GET['type']!='ajax'){ 
    include 'header.php'; 
    echo "<div id='main-content'>"; 
} 
?> 
Itm 1</br> 
Itm 2 

<img class="ajax-loader" src="ajax-loader.gif" alt="loading..." /> 

<?php 
if($_GET['type']!='ajax'){ 
    echo "</div>"; 
    include 'footer.php'; 
}?> 

app.js

$.cergis = $.cergis || {}; 
$.cergis.loadContent = function() { 
    $('.ajax-loader').show(); 
    $.ajax({ 
     url: pageUrl + '?type=ajax', 
     success: function (data) { 
      $('#main-content').html(data); 
      // hide ajax loader 
      $('.ajax-loader').hide(); 

    } 
    }); 
    if (pageUrl != window.location) { 
     window.history.pushState({ path: pageUrl }, '', pageUrl); 
    } 
} 
$.cergis.backForwardButtons = function() { 
    $(window).on('popstate', function() { 
     $.ajax({ 
      url: location.pathname + '?type=ajax', 
      success: function (data) { 
       $('#main-content').html(data); 
      } 
     }); 
    }); 
} 
$("a").on('click', function (e) { 
    pageUrl = $(this).attr('href'); 
    $.cergis.loadContent(); 
    e.preventDefault(); 
}); 
$.cergis.backForwardButtons(); 

我已經嘗試了不同的變化,但沒有運氣。請幫幫我。

謝謝。

app.js改變...

function myTimer() { 
    $('.ajax-loader').show(); 
    $.ajax({ 
     url: pageUrl + '?type=ajax', 
     success: function (data) { 
      $('#main-content').html(data); 
      // hide ajax loader 
      $('.ajax-loader').hide(); 
     } 
    }); 

}

setInterval(function(){myTimer()}, 1000); 
+0

'顯示'?你確定? – Strawberry

+0

對不起,它減慢.... – fin

回答

0

您可以使用setTimeout($.cergis.loadContent, 1000);刷新一次或setInterval($.cergis.loadContent, 1000);刷新每個秒(1000毫秒=1秒)。

http://www.w3schools.com/js/js_timing.asp

+0

我試過他們兩個....其實這次它的開始,但不是結束行動......卡在中間...... – fin

+0

這些功能將做什麼是啓動你給的功能in參數。所以如果它沒有結束,那是因爲你給的功能並沒有做你所說的「結束行動」。 – EoiFirst

+0

我改變了app.js在原來的帖子結束...基本上這個阿賈克斯改變了點擊div ....我想要它應該改變自動... – fin

1

嘗試的setTimeout:

function myTimer() { 
    $('.ajax-loader').show(); 
    $.ajax({ 
     url: pageUrl + '?type=ajax', 
     success: function (data) { 
      $('#main-content').html(data); 
      // hide ajax loader 
      $('.ajax-loader').hide(); 
      setTimeout(myTimer,1000);//so that the request ends setTimeout calls a new request. 
     }, 
     error: function() { 
      setTimeout(myTimer,1000);//If there is an error in the request the "autoupdate" can continue. 
     } 
    }); 
} 
myTimer();//fire 

等待完成調用一個新的請求的請求這樣setTimeout()

setInterval()不會等待,這會使simuntaneos生成多個事件,從而導致緩慢。