そのため、この問題を無駄に排除しようと何度も調査しました。私はJavascriptの相対的なNoobです。私が抱えている問題は、イベント ハンドラーがトリガーされると、必要な新しい 20 項目が出力されますが、前の 20 項目も 1 回の読み込み後にフリーズすることです。コードは次のとおりです。
ジャバスクリプト関数:
<script type="text/javascript">
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()){
$('div#loadMoreComments').show();
$.ajax({
url: "loadeR.php?lastComment=" + $(".postedComment:last").attr("id"),
success: function(html){
if(html){
$("div#postedComments").append(html);
$("div#loadMoreComments").hide();
}else{
$("div#loadMoreComments").replaceWith("Showing All Comments!");
}
}
});
}
});
</script>
APPEND PAGE PHP:
if($_GET['lastComment']){
$NewAll = mysql_query('select*from scroll WHERE id < "'.$_GET['lastComment'].'" ORDER BY id DESC LIMIT 0,20');
$a = mysql_num_rows($NewAll);
for($i=0;$i<$a;$i++){
$id = mysql_result($NewAll,$i,'id');
$name = mysql_result($NewAll,$i,'name');
$text = mysql_result($NewAll,$i,'text');
echo "
<div class='postedComment' id='$id postedComment'>
<img src='prime1.jpg' id='userimage'/>
<div id='rightcontainer'>
<div id='walluser'>User Name $id</div>
<div id='wallcontent'>Comment/Content $name</div>
<div id='walltime'>Time posted $text</div>
</div>
</div>
";
}
}
初期分割ロード済み
<div id="postedComments">
<?php
$All = mysql_query('select*from scroll ORDER BY id DESC LIMIT 0,20');
//SELECT * FROM [insert table name] ORDER BY [insert unique counter] DESC LIMIT 0,[MAX #]
$a = mysql_num_rows($All);
for($i=0;$i<$a;$i++){
$id = mysql_result($All,$i,'id');
$name = mysql_result($All,$i,'name');
$text = mysql_result($All,$i,'text');
echo "
<div class='postedComment' id='$id postedComment'>
<img src='prime1.jpg' id='userimage'/>
<div id='rightcontainer'>
<div id='walluser'>User Name $id</div>
<div id='wallcontent'>Comment/Content $name</div>
<div id='walltime'>Time posted $text</div>
</div>
</div>
";
}
?>
</div>
<div id='loadMoreComments' style="display:none;"><img src="js/loadwheel.gif"/></div>