我試圖更新位於DIV(DIV1)聊天的內容,但更新內容只有當DIV1變化的內容(留言已提交到數據庫和DIV1回升)。jQuery的,必要時
我試圖解決從here但我GET操作失敗的數據進行比較。
此解決方案完美,但不包含內容的比較:
window.onload = startInterval;
function startInterval()
{
setInterval("startTime();",2000);
}
function startTime()
{
jQuery('#div1').load('index.php #div1 > *');
}
這是一個基於this修改,其將失敗:
window.onload = startInterval;
function startInterval()
{
setInterval("startTime();",2000);
}
function startTime()
{
var $main = $('#div1');
$.get('chat.php #div1', function (data)
{
if ($main.html() !== data) $main.html(data);
});
}
我嘗試這個代碼的各種修改,但無濟於事。 .. 我不能重新加載整個頁面,我不想,如果沒有必要做,因爲它使聊天難以閱讀,如果你有滾動槽的消息。 這怎麼解決?
UPDATE
基於@ TJ的建議我修改了現在的作品完美的代碼:
window.onload = startInterval;
function startInterval()
{
setInterval(startTime,3000);
scrolDown();
}
function startTime()
{
var $main = $('#div1');
$.get('#div1', function (data)
{
elements = $(data);
thisHTML = elements.find("#div1").html();
if ($main.html() !== thisHTML) {
$main.html(thisHTML);
scrolDown();
}
});
}
的另一個問題是,得到所需的庫:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
這顯然不是我以前使用的負載所要求的。
邊注:請不要將字符串傳遞到'setTimeout'或'setInterval'。使用'setInterval(startTime,2000);'(傳遞函數引用),而不是'setInterval(「startTime();」,2000);'(傳遞一個字符串)。 –
您的第一次(成功)嘗試從index.php中拉出,第二次從chat.php中拉出不成功,這些是正確的頁面嗎? – tymeJV
這些頁面應該是相同的,這只是我在簡化代碼時犯的一個錯誤。 – Roman