iframe非同步載入測試篇
談到transformers,顧名思義「變形金剛」,賣家中心首頁由各模組組成,模組可移動、刪除等,大部分模組實現iframe的非同步載入。
如何進行iframe非同步載入的測試,首先需要清楚,何為iframe非同步載入?
iframe可在主頁面的onload之前載入,也可在主頁面載入之後載入。
若採用普通方法載入iframe,主頁面的onload會在iframes的onload觸發之後觸發,所以iframe會阻塞主頁面的載入。若採用非同步載入iframe,主頁面的onload事件觸發與iframe無關,所以iframe不會阻塞載入。
普通方法載入iframe如下:
[img]
非同步載入iframe如下:
createifr: function (id, url, height)
ifr.scrolling = 'no';
ifr.frameborder = 0;
return ifr;
}[img]
掌握iframe非同步載入的原理後,接下來,我們需要掌握iframe非同步載入的測試並知曉iframe非同步載入帶來的問題。
iframe的非同步載入測試不可忽略,最重要的是會影響頁面的整體載入速度,效能指標需考慮其中。
前端頁面效能測試的進行不可避免。測試頁面效能的工具,主要用yslow、dynatrace和pagespeed。
使用這幾個工具進行前端頁面效能測試時,效能通過指標也是因專案自身特點而定,操作詳情在此不累述。
iframe的非同步載入在影響頁面載入效能的同時,也給功能測試帶來思考。
雖然暫時不可避免,但是發生的概率極小。
1、 非同步載入在傳送資料環節,有極小的可能性是會造成資料丟失,使用者獲得資料不完整,頁面顯示不正確
2、 兩個使用者在操作同乙個頁面iframe非同步載入的模組,會造成使用者資料在某個時刻不一致,報錯「資料儲存失敗」
針對1,有效的手段是讓客戶端重新傳送請求,服務端reload客戶端的資料,保證資料傳送的完整性。
針對2,我們無法斷定這就是bug,只能說是潛在的問題。如果使用者a和使用者b同時操作模組,iframe非同步載入傳送資料,後台會對操作前和操作後的資料進行比較,判斷是否一致,例如:若使用者a和b操作前的資料是100,使用者a操作後的資料是200,此時已經傳送到後台的資料是100和200,使用者b操作後的資料是300,此時傳送到後台的資料是100和300,但是因為使用者a操作了,造成使用者b操作前的資料為200,但之前後台查詢出來的是100,造成資料紊亂,後台報錯,前端頁面展示「資料儲存失敗」。
面對iframe非同步載入所帶來的問題,作為測試方,需綜合考慮各方因素,盡量測試到位,全方位出擊。
iframe非同步載入技術及效能
我們會經常使用iframes來載入第三方的內容 廣告或者外掛程式。使用iframe是因為它可以和主頁面並行載入,不會阻塞主頁面。當然使用iframe也是有利有弊的 steve souders在他的blog裡面有闡述 using iframes sparingly 阻塞主頁面的onload是這兩個問題...
iframe非同步載入技術及效能
我們會經常使用iframes來載入第三方的內容 廣告或者外掛程式。使用iframe是因為他可以和主頁面並行載入,不會阻塞主頁面。當然使用iframe也是有利有弊的 steve souders在他的blog裡面有闡述 using iframes sparingly 阻塞主頁面的onload是這兩個問題...
iframe非同步載入(點選左邊選單載入右邊內容)
關於iframe非同步載入,我們常用的大都是左邊選單欄右邊是內容頁面,要求我們不能左邊選單不能重新整理的情況下,非同步載入右邊的內容頁面。話不多說,做了乙個例項大致是這樣的 1 首先在你的專案中建立三個檔案如 2 在default頁面引入jquery檔案並在body中加入也下 view code 1...