engine.js详解

翻译 2006年05月19日 10:08:00

   只要在DWR里用到马歇尔(marshall),engine.js是必须的.他生成了javascript函数的通用接口.
   所有DWR页面都需要下列的脚本元素来导入主要的DWR引擎.
   <script type='text/javascript'
     src='/[YOUR-WEB-APP]/dwr/engine.js'>
   </script>

   选项索引

   下列选项都是可行的.通过运用DWREngine.setX()函数来设置全局的或者运用{ timeout:500,

callback:myFunc}来设置调用或批调用.

      Option       Global          Batch           Call

     timeout       1.0              1.1              -
     errorHandler  1.0               -              1.1
     preHook       1.0              1.1             1.1
     postHook      1.0              1.1             1.1
     method        1.0              1.1              -
     verb          1.0              1.1              -
     async         1.1              1.1              -
     ordered       1.0               -               -
    warningHandler 1.0               -              1.1
     callback       -                -              1.0
    skipBatch      1.0*             2.0?             -
    onBackButton   2.0?             2.0?             -
   onForwardButton 2.0?             2.0?             -
   (*表示没有setSkipBatch(),而是用beginBatch()和endBatch()来控制的)


                            Errors, Warnings and Timeouts
                                      --Handling Errors and Warnings
  DWR总是会有一些错误,通过errorHandler,或warningHandler来显示错误信息.
  这些方法可以以弹出警告框,或状态提示的方式显示错误信息.
  用DWREngine.setErrorHandler(function)来提示错误,DWREngine.setWarningHandler(function)提示警告.
  Setting Timeouts
  DWREngine.setTimeout() 允许你为所有的DWR调用设置超时值(默认值是0),单位是毫秒.如果超时调用发生那么适当的错误处理就被调用.
  例子:
       Remote.method(params, {
         callback:function(data){ alert("it worked"); },
         errorHandler:function(message){ alert("it broke"); },
         timeout:1000
      });
      如果Remote.method()执行时间超过了1秒,那么就会显示"it broke".


                              Call Batching(批调用)
  你可以把远程调用组合起来作为批调用,这样就节省了往返于服务器间的时间,也很少涉及到延时了.  批调用由DWREngine.beginBatch() 开始,DWREngine.endBatch()结束.当调用了endBatch()时批远程调用就结束了.所以DWR就在服务器上执行他们一次. DWR确保了所有的回调被调用,所以你可以透明地返回批开启或结束.不要忘了调用endBatch() 否则你的远程调用将永远在队列里.
  警告:
     当然批调用是有副效应地,他不可能是同步地,也不能同时进行批调用. 所有地调用就像个钩子(hooks),比起单一的调用,批调用调用timeouts和errorHandlers的次数更多.  如果一个批调用中有两个不同timeout值的调用,那么所有至少是后一个将被忽略.


                                  Call Ordering(分类调用)
  只要AJAX的异步远程调用不能分类返回我们发送的东西的时候,DWREngine.setOrdered(boolean),(默认是false)允许我们请求我们发送的数据的精确分类.通过当老的请求完成时发送新的请求DWR能做到这点.

  警告:
     当为true的时候,你的应用会慢下来,如果信息丢失客户浏览器会反应迟钝.


                                 Remoting Hooks
  我们来看看DWREngine.setPreHook(function)和DWREngine.setPostHook(function).  如果你想在在DWR远程调用前被警告,你可以设置pre-hook函数.他会被无参地调用.这个Hook很有用,如果你想禁止某些组件在返回前被再次试用.  Post execute hooks 通常被用来和pre-execute hooks 一起协调工作,或取消由pre-execute hooks执行的修改. 了解他们请看DWRUtil.useLoadingMessage()函数


                                Remoting Options
  DWR怎样处理远程调用有很多选项,方法和动作能传输给用户,但是有不同的浏览器副作用.通常DWR会选择合适的方法给你,但是这些选项会有不必要的副作用.  DWREngine.setMethod(newmethod)这个方法不一定会被执行,我们只是首先来试试看.newmethod必须是DWREngine.XMLHttpRequest 或DWREngine.IFrame.DWREngine.setVerb(verb)允许你选择post或get为XMLHttpRequest和IFrame.一些浏览器不支持XHR-POST,DWR会切换到get,即使设置了post. DWREngine.setAsync(flag)我们想让XHR对象异步吗?默认是true.
                          警告:如果你用了iframes,这个可能会被忽略.不推荐设置为false,这会使你的浏览器慢下来,如果你必须这样做,那么请设置一个timeout.
 

 


相关文章推荐

JS调用Envi Services Engine发布的影像处理服务

JS调用Envi Services Engine发布的影像处理服务任务:将遥感影像处理功能(自定义算法)发布到Envi Services Engine(ESE)上,客户端javascript调用RES...

js脚本Andriod engine的测试

项目几经折腾终于告一段落了,作为android engine的测试人员,我们都是跟着项目一起成长。在这里我想记录下我在这段时间的收获。恳请大家多多指教。 一.写测试脚本前一定要先写测试用例 测试脚...

在.NET中利用Google JS V8 Engine实现脚本引擎

原文地址:http://blog.csdn.net/wangjia184/article/details/8520725在.NET中可供集成的脚本语言有很多种选择,LUA 和 Python 都有非常成...

SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.js

Tomcat启动过程中各种错误!警告:SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' ...

DWR之其他概念:engine.js与util.js

DWR之其他概念:engine.js文件 ---------- 在范例程序中,我们引入了文件engine.js。该文件是DWR客户端的核心。这是一段javascript代码,用于把来自于动态生成的...
  • fhd001
  • fhd001
  • 2011-12-19 19:15
  • 1745

engine.js和util.js

  • 2011-03-22 11:54
  • 461KB
  • 下载

show engine innodb status 详解

很多人让我来阐述一下 SHOW INNODB STATUS 的输出信息, 了解 SHOW INNODB STATUS 都输出了些什么信息,并且我们能从这些信息中获取什么资讯,得以提高 MySQL 性能...

Mysql SQL Mode详解 tpshop修改NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

MySQL服务器能够工作在不同的SQL模式下,并能针对不同的客户端以不同的方式应用这些模式。这样,应用程序就能对服务器操作进行量身定制以满足自己的需求。这类模式定义了MySQL应支持的SQL语法,以及...

下一代3D引擎魅力!Offset Engine详解

作者:Darren     【IT168 资讯】可编程的shader自从在DirectX8规格中引入以来,就开始占据游戏设计的中坚位置,OpenGL也加入之后它的地位更加强势,几乎市面上所有的3D加速...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)