解決Chrome不支援本地ajax問題

11062404.JPG
11062404.JPG

基本上Chrome有個小小的問題,就是一般如果使用AJAX來做資料交換因為是基於javascript則不管是不是放在http主機上或是單獨的html檔都能夠將資料顯示出來,至少FireFox或IE都可以。

所以以jQuery做一個資料異步傳輸的範例,在FF或IE上都正常,偏偏在Chrome下就看不到資料。

 



這個問題可能是因為Chrome考量未來在WEB APP的安全性所致(我猜的)。但既然大概知道Google的想法,所以就要用新的方法去做而不是受限於以往的習慣,否則再好用的工具也會被習慣(也許是因為之前不好用而不得不為之的方法)所淘汰。

研究了Chrome裡APP的邏輯發現其實Chrome已經把http主機放在核心裡,而不是單純解析javascript而已,所以它的交互方式根本跟在http主機上差不多,所以問題就解決了。

11062401.JPG
11062401.JPG
11062402.JPG
11062402.JPG

首先打開 工具/擴充功能 下的開發人員模式,選擇到你所開發的html檔案的那個目錄,結果啥都沒有是正常的。因為缺了一個檔案,叫 manifest.json 內容如下:

   1: {
   2:   "name": "專案名稱", "version": "1",
   3:   "icons": {"128": "128.png", "24": "24.png"},
   4:   "permissions": [ "notifications" ],
   5:   "app": {"launch": {"local_path": "datagrid.html"}}
   6: }

這個檔案類似一個設定檔,只要把它跟你的html檔放在一起就可以。Google的開發模式裡不好地方都有類似概念,像GAE的yaml或Android…….,這時後再載入一次就可以再擴充功能裡顯示了,如果將來html檔有修改就得"重新載入",這是個缺點也是優點,缺點是有點麻煩,優點是程式可以帶著走了。


然後開啟新的分頁就會看到你APP的頭像,給他執行下去,資料全出來了。


11062403.JPG
11062403.JPG

沒有留言:

張貼留言