2014-10-17 63 views
1

背景:

我正在從服務器加載我的整個AngularJS Cordova/Ionic網絡應用程序。這真太了不起了。我可以在不通過Apple的情況下更改應用程序。AngularJS,Cordova/IonicFramework:從服務器加載index.hml

問題:

Q1)如何使用js-files.zip,從服務器加載,在我的index.html文件? Q2)如何有效地從我的服務器加載index.html啓動邏輯?

問題:

在一些舊設備,加載時間過長,如果我從我的服務器加載我所有的.js文件,所以我希望能夠配置邏輯(index.html中)也從服務器。

我不是從服務器上加載的唯一的事情就是index.html的

這樣的內容,從服務器哪能基本負荷的index.html?

如果我嘗試這樣做,

1)拉動,也就是說,indexfromserver.html使用AJAX和做的index.html的HTML重寫與文件撰寫(RES),然後有AngularJS問題:

例如,模塊缺失錯誤(以下* 1),這是因爲以下不是index.html中直到Ajax響應重寫的index.html後:

<body ng-app="myapp" ng-controller="MainCtrl"> 

1.1)我可以包括在初始必要的模塊本地index.html,但如果我重寫index.html,我會得到這些錯誤/警告關於classList null在離子(問我的細節),deviceready沒有被解僱,並angularjs加載不止一次

2)我可以重定向index.html,比如indexfromserver.html,但那麼我所有的$ http響應被拒絕承諾。

關於2)我被告知我應該能夠爲indexfromserver.html添加一個控制器或者指定$ urlRouterProvider.otherwise('/ app/indexfromserver');

這並沒有解決被拒絕的$ http請求。

我不明白index.html是如何使$ http正常工作的,因爲它沒有控制器,也不是提供的'否則'路線。到目前爲止,我只能在config.xml中看到index.html的提及。

請求:

有人可以請張貼一個典型的例子是如何的AngularJS科爾多瓦/離子應用可以有效地利用這是一個從服務器加載index.html的邏輯的片斷?

否則,有人可以顯示/解釋是否/如何從服務器使用js-files.zip,並解壓並在index.html中使用?

詳情/備註:

(* 1) 未被捕獲的錯誤:[$注射器:modulerr]未能實例模塊的myapp由於: 錯誤:[$注射器:NOMOD]模塊 'MyApp的' 不可用!您拼錯了模塊名稱或忘記加載模塊名稱。如果註冊模塊確保您指定依賴關係作爲第二個參數。 http://errors.angularjs.org/1.2.17/ $ injector/nomod?p0 = myapp

回答

1

有人指出,您可以在某些情況下使用JavaScript來解壓壓縮文件,但這並不常見。網絡不能這樣工作,Ionic在瀏覽器中運行,所以您應該使用與優化網站相同的流程。

您可以像創建任何網站一樣構建應用程序。採取以下步驟爲快速加載創建更優化的應用程序。如果你不熟悉構建工具,看看http://yeoman.io/,這個特定的發生器爲Ionic https://github.com/diegonetto/generator-ionic

下面是您可以採取的一些步驟的非常基本的列表,儘管生成器提供了更多選項,還可以添加其他內容。

  1. Concat並將您的應用程序的JavaScript最小化爲單個文件。
  2. Concat將您應用的CSS最小化爲單個文件。
  3. 使用類似https://www.npmjs.org/package/grunt-angular-templates這樣的工具將您的角模板壓縮爲單個JS文件。
  4. 將靜態資產部署到服務器。
  5. 鏈接到index.html中的上述資產。

最終目標是優化資產,因此您不必加載大量文件,並且每個文件都儘可能壓縮。

+0

這是不正確的。您當然可以從zip加載文件,解壓縮它們,並在您的應用中使用它們。 :-D stuk.github.io/jszip/ – Agamemnus 2014-10-18 21:44:41

+0

夠公平的看起來你可以在技術上做到這一點,但這不是我會考慮做的事情。似乎有很多限制,它增加了處理解壓縮的開銷,甚至不支持壓縮。 – 2014-10-20 04:43:23

+0

呃,壓縮文件做壓縮。而且沒有任何理由不能預先縮小。無論如何,您必須確保Cordova應用程序使用您的方法緩存文件。 (如果互聯網不可用,並且它不是僅限互聯網的應用程序) – Agamemnus 2014-10-20 19:07:44

1

如果你想要去的zip文件路徑,並承擔用戶不總是連接到互聯網,可能是最好的辦法是:

檢查的版本是通過服務器調用新的,如果是這樣,請下載zip文件,解壓縮(可能通過stuk.github.io/jszip/),然後使用Cordova界面將新的JS代碼寫入手機內存,然後通過添加腳本標籤來運行代碼你的裝載機。