私はこれを理解しようとしばらく時間を費やしました。適切な経験を積んだ人ならきっと問題を見ることができると思いますが、なぜそれが一貫して機能していないのか理解できません。
基本的に、これは2つの呼び出しを行うだけです。ページが読み込まれるときに番号を取得します。次に、ユーザーがフォームを送信すると、2回目の呼び出しが行われ、PHPファイルに現在の送信総数に1を加算するように指示されます。
ほとんどの場合は機能しますが、IE7とIE8でも機能するようです(ある意味、番号が何らかの形でキャッシュされているように見えるので、別のブラウザーから更新されたことがわかります)。
編集:私はIE9の開発者ツールを使用してIE7とIE8をテストしただけで、それらの実際のインストールを自分で試したことはありません。
$(document).ready(function() {
var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
var url = "counter.php?myaction=getcount";
request.open('GET', url, true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
updateCounter(request.responseText);
}
};
request.send(null);
});
function doNothing() {};
function addCount() {
var request2 = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
var url2 = "counter.php?myaction=addcount";
request2.open('GET', url2, true);
request2.onreadystatechange = function() {
if (request2.readyState == 4) {
request2.onreadystatechange = doNothing;
updateCounter(request2.responseText);
$('#stcPetitionForm').submit();
}
};
request2.send(null);
}
function updateCounter(numSubmissions) {
$("#myCounter").html("<p>" + numSubmissions + "</p>");
}