Re: [問題] 關於變數

看板Ajax作者 (踢恩)時間16年前 (2008/07/02 22:57), 編輯推噓2(2012)
留言14則, 2人參與, 最新討論串2/2 (看更多)
我大概看懂回文的意思 那我要確保token的事情都做完了才能取他的值 所以我在sendtokenRequest();之後也加 if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){ if (xmlHttp.status == 200) 是這個意思嗎? 因為我其實要做兩次xmlHttprequest 第一次做完的edittoken要丟給第二次做 ※ 引述《tn801534 (踢恩)》之銘言: : 為什麼我的edittoken在c裡面顯示是對的 : 可是在d裡面顯示undefined : 我不是宣告全域了嗎? : 我測試發現catchtokenResult的給值動作好像讓edittoken變成local的給值 : 請問要怎麼改呢 : 以下附上程式碼 : 有點繁雜抱歉 : var edittoken; : function sendtokenRequest(){ : url='wiki/api.php?action=query&prop=info&intoken=edit&titles=' + getTitl : +'&format=xml'; : createXHR(); : xmlHttp.onreadystatechange=catchtokenResult; : xmlHttp.open('GET',url,true); : xmlHttp.send(null); : } : function catchtokenResult(){ : var obj=document.getElementById('c'); : if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){ : if (xmlHttp.status == 200) { : s=xmlHttp.responseXML; : edittoken=s.getElementsByTagName('page') : [0].getAttribute('edittoken'); : obj.innerHTML=edittoken; : } else { : obj.innerHTML=xmlHttp.status; : } : } : } : function sendRequest(){ : var obj=document.getElementById('d'); : sendtokenRequest(); : obj.innerHTML=edittoken; : } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.211.217.211

07/02 23:10, , 1F
還是說有什麼辦法可以確定第一次的request結束了?
07/02 23:10, 1F

07/02 23:35, , 2F
從你的程式來看,d和c一樣,放在catchtokenResult中就可以了
07/02 23:35, 2F

07/02 23:36, , 3F
在 sendtokenRequest() 用 if..檢查 readystate 不是好做法
07/02 23:36, 3F

07/02 23:38, , 4F
我的意思是說sendrequest中做完sendtokenrequest之後檢查
07/02 23:38, 4F

07/02 23:40, , 5F
還是說我第二次request直接在給完edittoken後做?
07/02 23:40, 5F

07/02 23:48, , 6F
sendtokenrequest 之後檢查的話,得用迴圈檢查,不好.
07/02 23:48, 6F

07/02 23:48, , 7F
為什麼不放在catchtokenResult中?
07/02 23:48, 7F

07/02 23:50, , 8F
至於你說的第2次request,沒看到實際程式,不知道有什麼影響
07/02 23:50, 8F

07/02 23:50, , 9F
所以是在catchtokenresult給完edittoken後直接做第二次囉
07/02 23:50, 9F

07/02 23:50, , 10F
是這個意思嗎?
07/02 23:50, 10F

07/02 23:51, , 11F
因為我第二次request的url裡面要有edittoken所以要等
07/02 23:51, 11F

07/02 23:51, , 12F
第一次做完
07/02 23:51, 12F

07/02 23:57, , 13F
嗯,你試看看,不過要做檢查,免得catchtokenresult
07/02 23:57, 13F

07/02 23:58, , 14F
一直 request
07/02 23:58, 14F
文章代碼(AID): #18QvTfz5 (Ajax)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #18QvTfz5 (Ajax)