[英]Refresh a PHP page for every predefined seconds
我想每10秒加載/刷新一個特定頁面,以查看從數據庫中獲取的更新數據。
我用META來做
<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'>
但我仍然同意,我們也可以使用以下方法:
- 用settimeout加載div的Javascript
- Ajax動態刷新
如果您使用META,AJAX動態刷新,Javascript settimeout共享性能問題,那就太好了。還請共享實現此目標的最佳方法。
注意:需要刷新整個頁面,而不是特定的框架或div。
使用AJAX對用戶的干擾最小,因為在完成之前用戶不會注意到正在刷新/重新加載某些內容。
請注意,根據具體情況,AJAX的性能可能比META更好或更差:
如果計划刷新整個頁面,則使用<META>
標記是最干凈的方法。 當您具有完全受支持的僅HTML方式時,使用JS計時器刷新頁面似乎很尷尬。
但是,如果只需要刷新頁面的特定部分,請使用AJAX。 在用戶體驗和性能方面都更好。
使用javascript提取動態內容還有另外一個好處:如果內容一次沒有加載,它仍然可以繼續嘗試。 如果您重新加載整個頁面但沒有加載,那么它將在此處停止。
同樣,如果您使用Ajax,則顯示效果會更好,因為您不會看到整個頁面都消隱掉並一次又一次地重新呈現。
對於客戶端,您提到的所有方法之間實際上沒有任何區別。 我可以找到的唯一區別是,使用它不需要像其他解決方案一樣使用javascript,但是如今無論如何,每個人都擁有javascript。
對我來說,最大的不同在於服務器的使用情況。 如果您有100位用戶每10秒刷新一次,那已經大約是10 res / sec。 根據生成頁面的邏輯(可能是動態的),這可能導致服務器使用率急劇上升。 確保您對此有所注意。
請注意,您還可以在PHP中使用header()來完成meta標簽的作用。 只要確保在其他輸出之前先調用header()即可。
使用jQuery,您可以做到):
var seconds = 10;
var id = setInterval(function()
{
$('#container').load('whatever.php');
}, 1000*seconds);
:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.