さまざまなphpファイルからSQLクエリをフェッチするjsと、js変数を表示するhtmlがあります。
今のところしばらくは動作しますが、js がデータを取得するときに各 php ページをキャッシュするため、ブラウザがゆっくりと過負荷になり、最終的にブラウザがクラッシュします。
これについていくつか質問があります: A) 2 つの php ページの「古い」セットのキャッシュを無効にするにはどうすればよいですか? B) もっと良い方法はありますか?
var seconds = 3;
var divs = new Array("div1", "div2");
var urls = new Array("jaxcount.php", "jaxcount2.php");
// Refresh DIV
function refreshdiv() {
for (var i = 0; i < 2; i++) {
var div = divs[i];
var url = urls[i];
dorefresh(div, url);
break;
}
}
function dorefresh(div, url){
// Stolen XMLHTTP Request Object
var xmlHttp;
try {
xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Exploder
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return false;
}
}
}
// IE Optimizations
fetch_unix_timestamp = function () {
return parseInt(new Date().getTime().toString().substring(0, 10));
};
var timestamp = fetch_unix_timestamp();
var nocacheurl = url + "?t=" + timestamp;
// The Beef
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState === 4) {
document.getElementById(div).innerHTML = xmlHttp.responseText;
setTimeout('refreshdiv()', seconds * 1000);
}
};
xmlHttp.open("GET", nocacheurl, false);
xmlHttp.send(null);
}
// Trigger Refresh
var seconds;
window.onload = function startrefresh() {
setTimeout('refreshdiv()', seconds * 1000);
};