我有一個JavaScript的setInterval,每5秒檢查一次外部頁面的郵件,我發現有時候,如果我登錄或點擊表單提交的請求同時出去,我有時會發現自己正在看Y或N(我的JS要截取的內容),而不是我想去的真正鏈接。被重定向到錯誤的地方 - 有時
如何調試?我正在用firebug使用firefox,我的應用程序正在使用PHP與JavaScript。
編輯:它幾乎就像是由java錯過了onComplete,它只是當用戶正在登錄時轉儲它....它只發生在有人正在更改頁面,並且java正在同時運行。
編輯2:如果你想看到自己這一點,你需要訪問我的網站,並創建一個帳戶,並辦理註冊過程(2-3分鐘,做檯面),該網站是http://mikesandmegs.com和beta密碼是金魚。只要檢查郵件發送請求,你想要做的就是登錄。它就像我需要取消某些東西或者告訴java拋出回調或者其他東西。您應該每隔5秒查看一次請求(每次請求會增加5秒),但您會看到。 這可能需要一些嘗試或運氣,但它是可重複的。
這是正在運行的JavaScript(我想我已經發布了所有內容)如果我似乎缺少任何東西,請告訴我。我也貼一個htnl輸入的HTML的JavaScript檢查...
<input id="hasMail" type="hidden" value="y">
<script type='text/javascript'>
mailTimer = setInterval("checkMail();", 10000);
function checkMail()
{
// should we check the mail now?
if ($('hasMail').value == "y")
{
// remove mail new mail alert (mail-check.php returns y or n
new Ajax.Request('mail-check.php',
{
method: 'post',
postBody: '',
onComplete: checkMailNotify
});
}
}
function checkMailNotify(req)
{
if (req.responseText.length > 5)
{
$('hasMail').value = "n";
clearInterval (mailTimer);
return;
}
if (req.responseText == "y")
{
$('hasMail').value = "n";
$('topMessage').update('<a href="/mail-inbox.php">You have new mail...</a>');
$('alertBox').appear();
clearInterval (mailTimer);
}
else
{
clearInterval (mailTimer);
mailInterval = mailInterval + 5000;
mailTimer = setInterval("checkMail();", mailInterval);
}
}
</script>
你可以通過發佈這是造成這個 – 2009-06-24 22:16:28
槽糕的代碼開始,貌似沒有什麼不妥我。 您的測試網站是否公開?如果是,我們可以得到一個鏈接嗎? 如果我正在調試這個,我會......等等,我只是注意到你說你在看XML。它看起來像你的腳本期望只返回幾個字符......你的腳本是發佈XML還是奇蹟般地出現? – 2009-06-24 22:33:52
對不起,我說我在看XML,我犯了一個錯誤只是一個Y或N,我的JavaScript應該攔截 – MichaelICE 2009-06-24 22:36:37