基本上Chrome有個小小的問題,就是一般如果使用AJAX來做資料交換因為是基於javascript則不管是不是放在http主機上或是單獨的html檔都能夠將資料顯示出來,至少FireFox或IE都可以。
所以以jQuery做一個資料異步傳輸的範例,在FF或IE上都正常,偏偏在Chrome下就看不到資料。
這個問題可能是因為Chrome考量未來在WEB APP的安全性所致(我猜的)。但既然大概知道Google的想法,所以就要用新的方法去做而不是受限於以往的習慣,否則再好用的工具也會被習慣(也許是因為之前不好用而不得不為之的方法)所淘汰。
研究了Chrome裡APP的邏輯發現其實Chrome已經把http主機放在核心裡,而不是單純解析javascript而已,所以它的交互方式根本跟在http主機上差不多,所以問題就解決了。
首先打開 工具/擴充功能 下的開發人員模式,選擇到你所開發的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的頭像,給他執行下去,資料全出來了。
沒有留言:
張貼留言