関数 loadPage により、読み込みのたびにブラウザがフリーズします。
コメントを外し$("#responsedcontainer").load("widget.php");
てもブラウザがフリーズすることはありませんが、関数 loadPage を使用するとフリーズします。ロード機能のみを使用すると、他の機能は実行されません。
私は自分のjqueryに非常に制限があり、学習しようとしています。これが理にかなっていることを願っています。
var beforeLoadData = [];
function loadPage( url ){
var ajax = new XMLHttpRequest();
ajax.open("GET", url , false);
ajax.send(null);
$("#responsedcontainer").html( ajax.responseText );
}
function saveTableData(){
beforeLoadData = []
$("td.changeable").each( function(){
beforeLoadData.push( { "key": $(this).attr('id'), "value": $(this).text() } );
});
}
function getSavedValueFor( key ){
for( var i in beforeLoadData ){
if( beforeLoadData[i].key === key )
return i;
}
return -1;
}
function checkTableData(){
$("td.changeable").each( function(){
var thisValue = { "key": $(this).attr('id'), "value": $(this).text() };
var index = getSavedValueFor( thisValue.key );
if( index >= 0){
if( beforeLoadData[index].value > thisValue.value )
$( "td#"+thisValue.key ).addClass( 'updated' );
if( beforeLoadData[index].value < thisValue.value )
$( "td#"+thisValue.key ).addClass( 'minus' );
}
});
}
function removeUpdatedClass( ){
setTimeout( function(){
$('td.updated').removeClass('updated');
$('td.minus').removeClass('minus');
},4000);
}
$(function(){
saveTableData();
//$("#responsedcontainer").load("widget.php");
loadPage( "widget.php" );
checkTableData();
removeUpdatedClass();
var refreshId = setInterval(function() {
saveTableData();
//$("#responsedcontainer").load("widget.php?randval="+ Math.random());
loadPage("widget.php?randval="+ Math.random());
checkTableData();
removeUpdatedClass();
}, 5000);
});