论坛首页 Web前端技术论坛

prototypes.js里设置成同步模式似乎不起作用了

浏览 4679 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-25  
new Ajax.Request时在options选项里如果asynchronous:false
那么声明的onSuccess:successmethod, onComplete:completemethod都不起作用了看了下源码发现应该时这句在搞鬼
  if (this.options.asynchronous) {
        this.transport.onreadystatechange = this.onStateChange.bind(this);
        setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
  }

如果不设置成异步方式,那么就不会把onComplete的函数bind上,也就不会执行真不知道他们怎么想的,还是这么设置有什么蹊跷?
我把这个if判断注释调了,在ie里以同步方式判断可以回调onComplete,onSuccess,但是firefox还是不行
   发表时间:2006-09-28  
firefox里用即使不用框架也不能同步,不知道为什么,前些天搞的很郁闷还好后来leader改变需求只要ie里能实现就够了嘿
0 请登录后投票
   发表时间:2006-09-28  
zkj_beyond前段时间已经提到过这个问题,这是作者原话:“以prorotype.js为首,Ajax.Request 对同步(synchronous)请求的支持一直有bug(现在改了),估计作者眼中,ajax都是异步操作,但我们使用者呢,无形中给我们这种思想。”

“现在改了”,应该是在beta版中吧,你可以下载源码,然后试着将Ajax.Request的实现更新到你目前的1.4版本中。

请参考:不要乱用ajax中异步操作
0 请登录后投票
   发表时间:2006-10-04  
就是看到这篇文章才不敢乱用异步的
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics