新聞中心
就像是一棵樹有很多果實一樣,QWrap也有很多apps,本文講解種子應(yīng)用?!胺N子”是沿用YUI3的說法,種子應(yīng)用是解決模塊加載問題的應(yīng)用,包括:模塊預(yù)加載、異步按需加載、模塊應(yīng)用。

apps果實篇之:種子
或許有些同學(xué)對異步加載模塊不大熟悉,沒關(guān)系,我們先感性的看一下這段代碼
QW應(yīng)用之一:seed_youa div1-----時間 div2-----時間
1. 如果用戶瀏覽此網(wǎng)頁時,只加載了一個體積很小的seed_youa.combo.js這個js(其實就是seed_youa.js(http://dev.qwrap.com/resource/js/apps/seed_youa.js)),這個js經(jīng)yui壓縮后的大小為4K。
2. 當(dāng)用戶點擊按鈕時,按鈕對應(yīng)的js用到j(luò)Query與YouaCore,點擊后才會去加載那兩個jQuery與YouaCore對應(yīng)的js,之后才有運(yùn)行效果。
3. 第二次點擊按鈕,由于前面已經(jīng)加載過js,所以這次會直接運(yùn)行按鈕事件。
分析一下以上三步,分兩種情況。
A. 對于只進(jìn)行了第一步操作的用戶,他們用seed_youa.js替代了jQuery與YouaCore兩個js的流量(這是好處甲);
B. 對于進(jìn)行過第二步操作的用戶,由于以上流量的節(jié)約,會讓用戶提前能夠點擊按鈕(這是好處乙),點擊后異步加載需要的js,加載完后事件才運(yùn)行,即點擊與運(yùn)行存在一個時間差(這是壞處甲),并且三個js都用到了,相對于傳統(tǒng)寫法,http多了一個seed_youa.combo.js(這是壞處乙)。
另外,對于頁面程序員來說,他在寫按鈕事件時,只需要知道自己的這段js用到了哪些模塊,而不用關(guān)心這些模塊是否已經(jīng)加載(這是好處丙),不過,他引用模塊的方式有了一些變化(少鍵入html代碼,多鍵入js代碼)。
好處甲、好處乙、好處丙、壞處甲、壞處乙,還有些沒有分析到的好處與壞處,反正有利有弊。
那么,在什么情況下利大于弊、什么情況下弊大于利,而我們該如何興利除弊?
如果這個頁面的用戶100%不會點擊按鈕,則幾乎沒壞處,只有好處甲、好處丙。
如果頁面100%的用戶會點擊按鈕,則需要權(quán)衡再權(quán)衡利弊再想辦法。
好的,我們先暫且擱置這些細(xì)節(jié),因為以上內(nèi)容已足夠讓同學(xué)們對“異步按需加載”有了感性的認(rèn)識。我們把提供這種異步按需加載的js叫種子(seed)。
我們看一下seed_youa.js,它是一個組合js(即前面一篇文章所說的B類apps:開發(fā)時可以是多個文件,但上線時會先合并后上線。)
它由三個js組成:
- document.write('


咨詢
建站咨詢