Richie

Sometimes at night when I look up at the stars, and see the whole sky just laid out there, don't you think I ain't remembering it all. I still got dreams like anybody else, and ever so often, I am thinking about how things might of been. And then, all of a sudden, I'm forty, fifty, sixty years old, you know?

JavaScript问题汇总

1. Ajax调用被杀毒软件/防火墙阻挡
   记得05年做项目遇到过这种情况,发现客户端关掉kv300和瑞星的网页监控选项能够解决问题,因为是集团和供应商之间的系统,没有深究原因,而是要求用户关闭杀毒软件的网页监控选项
   不久前的项目又遇到这个情况,卡巴会拦截ajax调用请求。将http header的connection设置为close可以解决问题:xmlHttp.setRequestHeader('Connection', 'close');。
   两次发生这种情况时都不是使用第三方js库,而是直接用xmlhttp实现。使用jQuery和Prototype的时候好像没有遇到过,查了一下jQuery里面的ajax没有对Connection进行设置,而Prototype则给出了一段,说针对老板本Mozilla的一个bug而将Connection设为close。http1.1的Connection默认为persistent connection,既然jQuery和Prototype不会出问题,则说明卡巴的拦截规则为:connection要么为close;如果使用persistent connection,则其它某些header必须符合要求,否则一律拦截。

2. IE Operation aborted
   参考Dealing with IE Operation Aborted
<html>
<head>
    
<script type="text/javascript">
    
function appendToBody() {
        
var div = document.createElement('div');
        div.innerHTML 
= "Operation aborted!";
        document.body.appendChild(div);        
    }
    
</script>
</head>
<body>
    
<form>
    
<script type="text/javascript">
            appendToBody();
    
</script>
    
</form>
</body>
</html>
   IE打开这个文档就会出现"Operation aborted"错误信息,解决方法1.为script标签加上defer属性,2.让script标签属于body的直接子节点。defer属性只针对IE有效,并且导致在IE中script的执行被延迟,而其它浏览器下则不会,因此需要注意多浏览器下的副作用

3. jQuery的selector,文档中有可能同一id出现多个地方时,一定要指定context,即$(selector, context)
   因为很多地方都需要弹出窗口选择用户、选择组织结构等类似功能,没有使用window.open,而是用jQuery做了一个div弹窗的封装,外层div包装了弹出窗口的标题栏、按钮、3D边框效果、drag/drop、ajax调用、统一的使用接口等,里面有个id为dataArea的div,用ajax调用具体的查询页面将html填入其中。问题发生在同一个页面需要多个这样的弹出窗口,导致dataArea这个id存在多个对象,selector中不使用context时,多次弹出时竟然循环交替的获取到各个dataArea对象
   javascript组件用的多而复杂时,相关的一些问题跟线程安全一样重要而复杂

posted on 2008-03-23 07:14 RicCC 阅读(375) 评论(1)  编辑 收藏 网摘 所属分类: JavaScript

Feedback

#1楼  2008-08-31 11:37 龚艺      

受教 了,学习   回复  引用  查看    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-23 16:08 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: