我已經花了最近4年試圖解決這個問題(開啓和關閉),坦率地說我的大腦受傷了。在更新XML數據時使用ajax刷新DIV
我是當地社區項目(廣播電臺)的自願設計者。我們有一個「On Air」模塊,可以顯示正在播放和播放的曲目。
直到最近,我還使用自動刷新包含帶有軌道信息的HTML文件的iframe(這些HTML文件通過我們的播出系統每15秒自動通過FTP上傳)。這些iframe每15秒刷新一次,但是,這往往會導致iframe中的404和重新加載時出現難看的閃爍。
我花了一些時間尋找AJAX解決方案。我目前有一個帶有曲目信息(播放系統每15秒通過FTP自動上傳)的XML文件和一個使用AJAX每10秒刷新一次的HTML文檔。然而,儘管我已經幫助解決了404問題,但在文本刷新時仍然留下了醜陋的閃爍。
我讀過,只有當數據庫中的值發生變化時纔有刷新ajax的方法,但如果更新XML文檔,我還沒有太多的運氣來研究這種方法。
如果有人能幫助我指出正確的方向,許多餅乾和愛都會賜予你。謝謝!
這是我目前擁有的代碼:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
(function($)
{
$(document).ready(function()
{
$.ajaxSetup(
{
cache: false,
beforeSend: function() {
$('#content').hide();
$('#loading').show();
},
complete: function() {
$('#loading').hide();
$('#content').show();
},
success: function() {
$('#loading').hide();
$('#content').show();
}
});
var $container = $("#content");
$container.load("test.xml");
var refreshId = setInterval(function()
{
$container.load('test.xml');
}, 10000);
});
})(jQuery);
</script>
</head>
<body>
<div id="wrapper">
<div id="content"></div>
<img src="loading.gif" id="loading" alt="loading" style="display:none;" />
</div>
</body>
</html>
這裏是的test.xml:
<OnAirInfo>
\t <CurrentTrack><OCP_NOW_ITEMNAME></CurrentTrack>
\t <CurrentArtist><OCP_NOW_ARTIST1NAME></CurrentArtist>
\t <NextTrack><OCP_NEXT_ITEMNAME></NextTrack>
\t <NextArtist><OCP_NEXT_ARTIST1NAME></NextArtist>
</OnAirInfo>
你爲什麼不中的問題 – Tushar