私が入力しているフィールドは、次のようなテーブルです。
<table class="history"></table>
jquery-ajax は次のようになります。
<script type="text/javascript">
$(document).ready(function()
{
function fetchComments()
{
$.ajax({
type: 'POST',
url: '/members/comment/fetch/',
dataType: "json",
timeout: 100,
success: function(data)
{
$.each(data, function(i, data){
$(".history").append("<tr><td>" + data.member_id + "</td><td>" + data.comment + "</td></tr>");
})
}
});
}
function clear()
{
$(".history").html('');
fetchComments();
}
setInterval(clear, 1000);
});
</script>
json を取得しているページ (/members/comment/fetch) は次のようになります。
[{"member_id":"2","comment":"horses--"},{"member_id":"2","comment":"kkk"},{"member_id":"2","comment":"sarmen22kkkkkkkkkkkkkj"},{"member_id":"2","comment":"sarmen22kkkkkkkkkkkkkj"},{"member_id":"2","comment":"sarmen22kk"},{"member_id":"2","comment":"sarmen22"},{"member_id":"2","comment":"sarmen"},{"member_id":"2","comment":"lklklk"},{"member_id":"1","comment":"this is admin"},{"member_id":"2","comment":"kkk"},{"member_id":"1","comment":"this is admin 2"},{"member_id":"2","comment":"kkk"}]
この json が作成される方法は、mysql のすべての行を読み取り、json 形式に出力することです。私が抱えている問題は、setinterval が json を毎秒再要求しており、データが取り込まれるテーブルが非常にぎくしゃくしており、データがスムーズに取り込まれないことです。テーブルがスムーズに作成されるようにするにはどうすればよいですか。これは、私が作成しているシンプルで小さなチャット アプリです。
ps: また、(何らかの方法で) ページを更新するため、長いデータ テーブルがあり、下にスクロールした場合、更新によりページが元に戻ります。