傳統(tǒng)網(wǎng)頁(yè)的請(qǐng)求中,數(shù)據(jù)在服務(wù)器端加載到模板上,一步就可以完成。
單頁(yè)面應(yīng)用需要先下載框架,然后才能開(kāi)始加載數(shù)據(jù)。
有什么辦法減少請(qǐng)求次數(shù),或是將這種串行加載變成并行的方法呢?
認(rèn)證高級(jí)PHP講師
完美的方案是服務(wù)器端渲染首屏,不過(guò)angular似乎不擅長(zhǎng)這個(gè),沒(méi)見(jiàn)到過(guò)實(shí)際的方案
稍差一些至少可以讓服務(wù)端把首屏的數(shù)據(jù)吐在頁(yè)面上
另外一些基本的css 模板 js的編譯合并應(yīng)該是最基本的
用一下gulp 工具
把 css 打包成一個(gè)文件, js打包成一個(gè)文件, 模板打包成一個(gè)js文件($templateCache) 可以和js 文件打包成一起.
然后就是
1 下載 HTML (第一個(gè)請(qǐng)求, 純靜態(tài)頁(yè)面, 可能會(huì)包括部分angular模板內(nèi)容, 這個(gè)頁(yè)面響應(yīng)要快)
2 下載 CSS (一個(gè)請(qǐng)求)
3 下載 javascript文件 和 模板js文件 (一個(gè)請(qǐng)求)
4 angular 渲染頁(yè)面
一共3個(gè)請(qǐng)求 + 其他ajax請(qǐng)求搞定.
"gulp": "~3.8.0",
"gulp-angular-templatecache": "^1.4.2",
"gulp-compass": "^2.0.1",
"gulp-concat": "^2.4.1",
"gulp-jasmine": "^1.0.1",
"gulp-jshint": "~1.5.5",
"gulp-livereload": "~1.3.1",
"gulp-minify-css": "^0.3.10",
"gulp-minify-html": "^0.1.6",
"gulp-mocha": "~0.5.1",
"gulp-ng-annotate": "^0.3.5",
"gulp-nodemon": "^1.0.4",
"gulp-shell": "^0.2.10",
"gulp-uglify": "^1.0.1",
推薦使用requireJs + angularJsAMD,可以做到按需加載。
鏈接傳送:https://github.com/marcoslin/angularAMD
angularjs壓縮后就170多kb 如果在移動(dòng)端上你要考慮一下了 在pc端。。我感覺(jué)也不用太在意 你看teambition 前端上m的資源 還不是一個(gè)loading在轉(zhuǎn)啊轉(zhuǎn)
從業(yè)務(wù)和設(shè)計(jì)著手,常用的可以grunt等工具打包lib.min.js到一次性加載,非 常用的惰性加載