Heim  >  Artikel  >  Web-Frontend  >  前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)_jquery

前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)_jquery

WBOY
WBOYOriginal
2016-05-16 18:33:13869Durchsuche

项目背景:.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='test 'var jqEl=$(html);此时,jqEl会把html里的' '丢掉。
9、jQuery1.2.6和jQuery1.3在细节的处理上有一些区别。
jQuery1.2.6处理hasClass('.className')会出错,而jQuery1.3不会。
10、尽量少用jQuery的each,多用js原生的代码,性能较高。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn