DWR的同步和異步使用方式

(2009-08-21 09:25:33)

想要異步的時候異步,想要同步的時候同步,在不同的情況下我們有不同的需求。dwr是ajax的服務器端框架,它封裝了服務器端的調用,我們可以在JAVASCRIPT中直接調用服務器端的代碼,完成想要的功能。但是,由於AJAX是異步實現的,並且AJAX確實是爲了異步的實現才引入近來的。但是,AJAX仍然也支持同步的調用。在純粹的XMLHttpRequest中可以設置調用是否是異步的。XMLHttpRequest的open函數是有一個是否同步參數,如下:

XMLHttpRequest.open(String method, String URL, boolean asynchronous)

其中的asynchronous就是是否同步的參數了。

在DWR的engine.js文件,有setAsync方法,就是設置調用是否是同步的,還是異步的。

js 代碼

    if(testProjectId != -2){

        DWREngine.setAsync(false);//設置是否異步傳輸爲false,即同步

        viewUtil.getTestedProjectLabelValueBeanByProject(handleResponser1, testProjectId);

        DWREngine.setAsync(true);  //再設置是否異步傳輸爲true,即異步

    }
上面這段代碼就是設置DWR是同步返回的。如果不同步返回的話,我去頁面中的一個元素的值就取不到了,因此必須先設置爲同步。然後再執行三個異步調用:     

js 代碼

1.viewUtil.getAllModuleLablueBeanById(handleResponser3, testedProjectId); 

2.viewUtil.getAllResolverListLablueBean(handleResponser4, testedProjectId);   3.viewUtil.getTestReportLabelValueBean(handleResponser2, testProjectId, testedProjectId);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章