dwr入門執行個體三之批請求

來源:互聯網
上載者:User

 在2月份實習的時候,公司給我們的第一個任務就是閱讀開源項目的原始碼,我選擇的是dwr。由於剛開始實習的時候,在前端技術中心,故主要分析了下前端的代碼和互動協議。

前面寫了兩篇入門執行個體,也做了一些簡單的分析使用。本篇本應該在實習的時候就發出來的,但是由於本人過於懶惰和各種其他種種原因,沒有繼續寫下去。最近一項,目用到dwr,又恰恰使用到這個功能,所以想了想還是發出來做個筆記記錄吧。

這個功能就是dwr的批請求,這個可以在一個http請求裡面,調用幾個java方法,這也屬於dwr的一個基礎功能,屬於入門層級的,但是在項目中應該是非常實用和經常會使用到的吧。只需要你在javascript代碼裡面寫上如下幾句代碼結構就可以實現批處理請求了:

dwr.engine.beginBatch(); //開始一個批請求//中間寫你需要調用的java方法,調用格式一般是JAVAClassName.method(),JAVAClassName這是需要在dwr.xml中配置的,這個在前面兩篇裡面說過的dwr.engine.endBatch();//完成一次批request

下面是dwr執行這個批處理的一個流程圖:

在調用java後台方法時候JAVAClassName.method()的時候這個方法會調用如下方法執行。

ždwr.engine._execute(path , scriptName , methodName , args)。

流程如下:

如果是單請求那麼beginBatch、addCall和endBatch,將都在_execute這個方法裡面完成。如果是批請求:先調用dwr.engine.beginBatch(); 開始一個批請求,將建立一個batch,那麼在_execute方法裡面就會把singleShot設定為true,可以看上面的流程圖。singleShot為true那麼就不會調用dwr.engine.endBatch()結束請求(發出ajax調用),故這樣execute這個方法裡面就主要調用的addCall這個方法添加請求(實際是不會發出ajax請求的),最後我們手動調用endBatch才結束,這時才真正的發出ajax請求,調用背景方法。

當時也寫了個更為詳細的ppt,等我整理了再上傳上來(http://download.csdn.net/detail/lazy_p/3635924)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.