Comet框架Plushlet使用問題解決方案
對于某些人來說,這可能是個愚蠢的問題,但是由于這個問題讓我糾結了大半天,我實在是受不了了,我一定要把它貼出來!
補充一下,之前我說的修改JS來保證路徑正確性的問題,至今沒有人給予其他可能性的答復,而今天我到家以后在IE8上,僅僅增加了
<base href="<%=basePath%>" rel="external nofollow" >
標簽后就不再出現(xiàn)問題了,想想可能是因為少了一個定位項目絕對路徑的標簽,我看了一下頁面源碼:、
<html> <head> <base href="http://localhost:8080/mypushlet/" rel="external nofollow" > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <script type="text/javascript" src="ajax-pushlet-client.js"></script> <script type="text/javascript"> PL._init(); PL.joinListen('/cuige/he'); function onData(event) { document.getElementById("mess").innerHTML=event.get("mess"); for(i=0;i<2;i++){alert(i);} // 離開 // PL.leave(); } </script> </head> <body> <center> <h1> my first pushlet! </h1> <br /> <div id="mess"></div> </center> </body> </html>
我絕對是這個可能!
不過我要說的不是這個問題,而是上面代碼中的for循環(huán),大家猜猜他的運行結果會是什么!
理論上來說,應該是每次推過來消息的時候就會進行提示,但是我發(fā)現(xiàn)消息只是推送了一次!為什么在方法里面寫個循環(huán)就不行了呢,我一直糾結,同事說是不是其他代碼中有 return 關鍵字把程序返回終止了,我嘗試把其JS都刪除,但是仍然不能解決問題。
后來突然想到是不是變量沖突!
我以為,JS方法內(nèi)的變量都是局限在這個方法內(nèi),出去這個方法就會消失,但是我錯了,就是這種認為是我的程序讓我糾結了這么長時間!
原因很簡單
for(i=0;i<2;i++){alert(i);}
我定的 i 變量,沒有增加 var 標識,就會成為方法內(nèi)的全局變量,如果其他代碼也有 i 這個變量,就會造成變量沖突!
我嘗試這樣去寫:
for(var i=0;i<2;i++){alert(i);}
這樣就可以一直進行提示了!
由于JavaScript屬于弱語言,我平時書寫時也不是那么規(guī)范,也就造成了在這次引用別人API時還造成了變量沖突!
壞習慣害死人呀!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
java經(jīng)典問題:連個字符串互為回環(huán)變位
連個字符串互為回環(huán)變位經(jīng)常出現(xiàn)在java程序員面試中,這個是考驗程序員的解題思路和方法的最經(jīng)典的一題,小編為大家詳細分析一下,一起來學習吧。2017-11-11mybatis查詢實現(xiàn)返回List<Map>類型數(shù)據(jù)操作
這篇文章主要介紹了mybatis查詢實現(xiàn)返回List<Map>類型數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11