close
文章出處

項目背景:.Net 3.5+MySQL+jQuery+WebService

在公司做這個項目已經6個多月了,總結一些問題,也算是拋磚引玉吧,希望園子里更多的朋友一起分享一些技巧。

1、 WebService方法返回值不能為void。

當WebService方法返回值為void時,FF和Chrome會持續等待,認為這個請求沒有結束,而在IE中一切是正常的。

2、當input的type="button"時或者使用button時,點擊后會觸發form的submit。

當時查找頁面刷新的問題找了很久,最后才發現是button會自動觸發form的submit,導致當前頁面的刷新。

3、js設置document.domain只能從二級域名設置到頂級域名。

比如訪問moozi.cnblogs.com,可以在這個頁面中寫document.domain='cnblogs.com';如果把域設置為cnblogs.com之后,無法再使用document.domain='moozi.cnblogs.com';。

4、使用DOM片段創建iframe,當跨域時,不能用js寫iframe的域。

比如你在moozi.cnblogs.com/test.html頁面用js把域設置為document.domain='cnblogs.com',而此時你再用var ifrm=createElement('iframe') ,這時將不能用js設置iframe的域也為'cnblogs.com',只能讓ifrm.src='test2.htm',并在test2.htm中設置域document.domain='cnblogs.com'。

5、當你修改過當前域的時候,CKEditor是正常的,而tinyMCE需要重新設置域。

 CKEditor能自動識別當前域,并不出錯。tinyMCE需要人為的設置。同時,如果你是用CKFinder上傳文件,而需要修改它的輸入代碼,不然會因為域不同而出現沒有權限的錯誤提示。

6、使用tinyMCE,盡管你的初始化代碼只有一句,但是可能出現多次初如化。發生原因未知,在不確定的情況下會出現此BUG。

7、開發js組件的時候,要時刻注意閉包和this的指代,這方面之前吃了不少虧。

8、將字符串轉換成jQuery對象時,要注意字符串html代碼的閉合標簽。

 比如:var html='<span>test</span>&nbsp;'var jqEl=$(html);此時,jqEl會把html里的'&nbsp;'丟掉。

9、jQuery1.2.6和jQuery1.3在細節的處理上有一些區別。

jQuery1.2.6處理hasClass('.className')會出錯,而jQuery1.3不會。

10、盡量少用jQuery的each,多用js原生的代碼,性能較高。

 

----------------------

先寫到這里吧...繼續更新


不含病毒。www.avast.com
arrow
arrow
    全站熱搜

    AutoPoster 發表在 痞客邦 留言(0) 人氣()