div (div1) にあるチャットの内容を更新しようとしていますが、div1 の内容が変更された場合 (メッセージが db に送信され、div1 で取得された場合) のみです。
ここから解決策を試しましたが、データの比較に失敗しました。
このソリューションは完全に機能しますが、コンテンツの比較はありません:
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);
});
}
このコードのさまざまな変更を試みましたが、役に立ちませんでした... ページ全体をリロードすることはできません。メッセージをスクロールする必要がある場合、チャットが読みにくくなるため、必要でない場合はこれを行いたくありません。 . これはどのように修正できますか?
アップデート
@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();
}
});
}
もう1つの問題は、必要なライブラリを取得することでした:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
これは、以前使用していた負荷では明らかに必要ではありませんでした。