關於同步加載、異步加載、延遲加載、預加載(form和ajax之間的區別)

關於同步加載、異步加載、延遲加載、預加載

同步加載:

<script src="http://yourdomain.com/script.js"></script> 

        (阻塞模式)會阻止瀏覽器的後續處理,停止了對後續文件的解析,執行,如圖像的渲染。瀏覽器之所以會採用同步模式,是因爲加載的js文件中對dom的操作,重定向,輸出document等默認行爲,所以同步纔是最安全的。通常會把要加載的js放到body結束標籤之前,使得js可在頁面最後加載,儘量減少阻塞頁面的渲染。這樣可以先讓頁面顯示出來

異步加載:

(function() { 
var s = document.createElement('script'); 
s.type = 'text/javascript'; 
s.async = true; 
s.src = 'http://yourdomain.com/script.js'
var x = document.getElementsByTagName('script')[0]; 
 x.parentNode.insertBefore(s, x); 
})();

        (非阻塞模式)覽器在下載js的同時,同時還會執行後續的頁面處理。在script標籤內,用js創建一個script元素並插入到document中,這種就是異步加載js文件了。同步加載流程是瀑布模型,異步加載流程是併發模型。

延遲加載:

    有些 js 代碼並不是頁面初始化的時候就立刻需要的,而稍後的某些情況才需要的。延遲加載就是一開始並不加載這些暫時不用的js,而是在需要的時候或稍後再通過js 的控制來異步加載。也就是將 js 切分成許多模塊,頁面初始化時只加載需要立即執行的 js ,然後其它 js 的加載延遲到第一次需要用到的時候再加載。特別是頁面有大量不同的模塊組成,很多可能暫時不用或根本就沒用到。就像圖片的延遲加載,在圖片出現在可視區域內時(在滾動條下拉)才加載顯示圖片

預加載:

    預加載是一種瀏覽器機制,使用瀏覽器空閒時間來預先下載/加載用戶接下來很可能會瀏覽的頁面/資源,當用戶訪問某個預加載的鏈接時,如果從緩存命中,頁面就得以快速呈現

關於ajax提交表單與form表單的區別

Ajax提交是通過js來提交請求,請求與響應均由js引擎來處理,頁面不會刷新,用戶感覺不到實際上瀏覽器發出了請求。比如說我們希望網頁總是顯示最新的新聞,而又不想老是去點刷新按鈕,我們就可以用Ajax機制來實現。網上的客服軟件也是ajax請求的一個比較好的案例。傳統的請求頁面將實現刷新,因此侷限性很大。

1.爲什麼用AJAX?
使用AJAX,用戶對Web的體驗會更“敏捷”:數據提交頁面不會閃屏;頁面局部更新速度快;網絡帶寬佔用低。

2.AJAX開發相較傳統模式的簡單之處:
傳統模式下,表單提交則整個頁面重繪,爲了維持頁面用戶對錶單的狀態改變,要多些不少代碼。要在控制器和模板之間傳遞更多參數以保持頁面狀態。而AJAX不然,因爲頁面只是局部更新, 不關心也不會影響頁面其他部分的內容。

3.AJAX開發相較傳統模式的難度:
需要了解、精通JavaScript,而JavaScript存在調試麻煩、瀏覽器兼容性等很多障礙。

=================================

有如下幾種區別: 
1. Ajax在提交、請求、接收時,都是異步進行的,網頁不需要刷新;Form提交則是新建一個頁面,哪怕是提交給自己本身的頁面,也是需要刷新的; 
2. A在提交時,是在後臺新建一個請求;F卻是放棄本頁面,而後再請求;

3. A必須要使用JS來實現,不啓用JS的瀏覽器,無法完成該操作;F卻是瀏覽器的本能,無論是否開啓JS,都可以提交表單; 4. A在提交、請求、接收時,整個過程都需要使用程序來對其數據進行處理;F提交時,卻是根據你的表單結構自動完成,不需要代碼干預。

4. A在提交、請求、接收時,整個過程都需要使用程序來對其數據進行處理;F提交時,卻是根據你的表單結構自動完成,不需要代碼干預;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章