(失敗的) 網頁混搭筆記
(請檢視本頁原始碼的 javascript。) 本來想要用 javascript 去搜括三個網頁: 1, 2, 3, 再進一步整理, 混搭列出三人的論文列表。 結果依序遇到下列問題:
- 基於安全理由, jQuery.get() 禁止讀取他站的網頁。
- 參考 The jQuery Cross-Domain Ajax Guide 裡面提到 James Padolsey 用 YQL 製作了 cross-domain-ajax。
- 採用了上述 script 之後, 果然可以用 $.get(...) 讀取他站的網頁。 試著把讀來的資料逐頁加到變數 msg 裡面。
- 但是三個頁面的資料不同步抵達; 而且這些資料都還沒搜集完, 程式就要開始處理 msg 了。 (就因為 get 底下其實是呼叫 ajax 咩: 一觸發讀檔的動作, 就立刻頭也不回地走人了) 結果印出來的 msg 是空的。
- 如果改成直接呼叫 $.ajax(...), 試圖取消 async 設定, 讓每個讀檔動作循序排隊完成, 卻又會被瀏覽器以安全理由攔住。 Firefox 3.5.6 和 chrome 皆然。 (也就是說, cross-domain-ajax 不知為何失效)
- (找 semaphore 之類的解決方案, 沒結果)
- 所以試著尋找 sleep 之類的函數, 企圖自己手工製作 semaphore, 慢慢等三個頁面的資料抵達。
- 可是 javascript 沒有 sleep() 函數, 也沒有簡單的實作。
- 那就改用 setTimeout 吧... 還是失敗 orz
嗯, 只好放棄 javascript。 以後有空改用 php 來做做看吧。
觀察程式碼效果 (paper_aggregation)
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/js/wp-mashup.php; 您所看到的版本: February 14 2012 02:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。