目前網(wǎng)站之間相互調(diào)用的情況越來越多,比如 需要調(diào)用某個第三方提供的一些接口(天氣預(yù)報),或者是第三方提供的廣告......
但是出于各種原因(網(wǎng)絡(luò)故障、服務(wù)器故障、軟件故障......)常常會發(fā)生第三方的相應(yīng)頁面不能訪問的情況,而直接導(dǎo)致自己網(wǎng)站不能正常訪問,或者訪問速度比較慢。
為了解決如上的問題,查閱了很多文章后,找到如下的解決方案:頁面的延時加載。
在IE中,幾乎每個對象均有一個屬性 readyState,此屬性反應(yīng)對象在當(dāng)前頁面的載入狀態(tài),當(dāng)該對象完全載入以后,則當(dāng)前對象的 readyState=="complete" ,借助該屬性,可以控制待當(dāng)前頁面最期待的內(nèi)容載入完成以后,再載入有可能出錯的頁面(或者是優(yōu)先級不高的頁面)。
詳細(xì)代碼如下:
問題頁面代碼:
這里是頁面的最頂端內(nèi)容。
如下的 div1 div2 div3 div4 可以放置任何第三方的內(nèi)容,比如廣告。
inner html 1
說明:此處的 寬、高,不一定需要提前設(shè)置,可以將此 Container 的寬、高根據(jù)內(nèi)部的內(nèi)容自適應(yīng)。
inner html 2
說明:div3中的內(nèi)容不能正常訪問,直接導(dǎo)致其下最重要的內(nèi)容不能正常打開,或者要過很久以后才可以正常打開。
inner html 4
這里是頁面最重要的內(nèi)容,您每次打開該頁面,均希望該部分內(nèi)容無論如何可以正常顯示。
這里是頁面的最底端
修復(fù)頁面代碼:
// 按照 期望的次序 排列每個 div 的 Id.
var arr1=new Array("div3","div2","div4","div1");
//var arr1=new Array("if3","if2","if4","if1");
// 期望 次序 div 中的內(nèi)容.
var arr2=new Array("換成你期望的內(nèi)容。","inner html 2","inner html 4","inner html 1");
//var arr2=new Array("3.html","2.html","4.html","1.html");
// 期望 次序 中 iframe 的狀態(tài).
var arr3=new Array("false","false","false","false");
function showState()
{
// 判斷 當(dāng)前頁面是否載入完畢
if(window.document.body.readyState=="complete")
{
for(i=0;i
{
if(arr3[i]=="false")
{
document.getElementById(arr1[i]).innerHTML=arr2[i];
arr3[i]="true";
return ;
}
}
}
}
// 每間隔 2 秒后調(diào)用如上方法, 當(dāng)然,正常應(yīng)用應(yīng)該將此時間間隔設(shè)置小一些, 此處 僅 為了方便大家看效果
setInterval("showState()",2000);
這里是頁面的最頂端內(nèi)容。
如下的 div1 div2 div3 div4 全部延時加載。 當(dāng)前頁面中的最重要內(nèi)容不會因 div1 div2 div3 div4 內(nèi)容的損壞,而不能正常訪問。
loading...
loading...
loading...
loading...
這里是頁面最重要的內(nèi)容,您每次打開該頁面,均希望該部分內(nèi)容無論如何可以正常顯示。
這里是頁面的最底端
禁止轉(zhuǎn)載 廣州幻色互動為您提供專業(yè)網(wǎng)站建設(shè)服務(wù)