敬請點擊此處查看樣本此鏈接:My test codeAJAX的setInterval錯誤
這將在一個div被用來在我的實際網站,並有同樣的問題。正如你可以看到每2秒鐘的div閃爍或在我的測試代碼網站整個頁面,然後當你向下滾動它會自動向上滾動同一時間。顯然它是由setInterval引起的。
而且我得到的控制檯錯誤:
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/ .
有什麼辦法改善嗎?
此外,還有其他方法來顯示更新列表從數據庫與ui在每一秒?
這裏是我的代碼:
<div id="container"></div>
<script>
function refreshNews()
{ $.get('../php/ajaxreportall.php').success(function(data){
$("#container").html(data);
})
}
refreshNews();
setInterval(refreshNews, 2000);
</script>
腳本文件
<?php
require("database.php");
$sql = "SELECT * from Report r inner join reddb.User_Info u
on u.user_email = r.user_email ";
$res = odbc_exec($conn,$sql);
echo "
<link rel='stylesheet' type='text/css' href='../css/homelayout.css'>
<script src='../js/home.js'></script>
";
while($feedItem = odbc_fetch_array($res))
{
echo "
<div class='feedItem'>
<div>Report No. <label class='feedItemRepID'>" . $feedItem['report_id'] . "</label></div>
<div>Name: <label>" . $feedItem['firstname'] . "</label></div>
<div>Contact No: <label>" . $feedItem['contact'] . "</label></div>
<div>Details: <label>" . $feedItem['report_detail'] . "</label></div>
<div>Date: <label>" . $feedItem['date_report'] . "</label></div>
<div class='buttons'>
<button class='btn btn-success btnRespond' data-toggle='modal' data-target='#myModal'>Respond</button>
</div>
</div>
";
}
?>
如果您要在每個內部重寫整個頁面的HTML(或大部分),那麼它只會看起來很醜陋,並且會閃爍並滾動。您可以通過保存滾動位置,添加新內容,然後設置回滾來保留滾動位置,但醜陋的閃光燈可能不會消失。顯示更新的更好的方法是隻從您的網站獲取JSON數據,僅處理已更改的數據,然後僅將這些更改應用於屏幕。或者使用JSON獲取所有數據並僅更新數據值。重寫整個頁面的HTML總是會看起來很醜。 – jfriend00
這就是我也在想的,因爲腳本是創建html內容的人,每次只是刷新頁面,這就是爲什麼它眨眼LOL – Jai
看看我的更新的答案爲較少侵入版本。 – mplungjan