導航:首頁 > 編程語言 > js如何實現非同步載入圖片

js如何實現非同步載入圖片

發布時間:2023-11-16 11:01:34

js如何實現圖片分段載入

你可以寫一個函數,來判斷當前顯示到了哪個區域,然後顯示本區域的圖片.這個其實你都不用自己去做了,使用JSON自己就帶有這樣的功能,應用和更改起來都比較方便,相率也非常優秀。

② 怎麼讓sea.js自身非同步載入

為了極限性能,也為了做一些封裝,我需要對seajs自身進行非同步載入,通過以下代碼載入seajs發現config與use都未執行。
<script>
// 其他代碼

// sea.js 的非同步載入代碼:
;(function(m, o, d, u, l, a, r) {
if(m[o]) return
function f(n) { return function() { r.push(n, arguments); return a } }
m[o] = a = { args: (r = []), config: f(1), use: f(2), on: f(3) }
m.define = f(0)
u = d.createElement("script")
u.id = o + "node"
u.async = true
u.src = "path/to/sea.js"
l = d.getElementsByTagName("head")[0]
l.appendChild(u)
})(window, "seajs", document);

// 立刻就可以調用 seajs 的方法了:
seajs.config({
alias: {
'jquery': 'path/to/jquery-1.9.1.min.js'
}
});

seajs.use('./main', function(main) {
// do some cool things.
});
</script>

然後在網上查了以下,發現玉伯去除 sea.js 自身的非同步載入內置支持,
https://github.com/seajs/seajs/issues/733

木有辦法,只能自己改一改了,我當前使用的版本是2.1.1,為了兼容以後新的版本就不動他的源代碼,只在sea.js 底部加上一段:
G = this;
var k = G.PagurianObjectName;
var Pagurian = function(a) {

this.push = function(a) {
if (a[0] === 'config') {
seajs[a[0]](a[1]);
}
if (a[0] === "use") {
seajs[a[0]](a[1], a[2]);
}
}
if (a && a.length) {
for (var b = 0; b < a.length; b++) this.push(a[b])
}
};
G[k] = new Pagurian(G[k].q);

然後在用的時候,這樣用:
(function(i, d, o, u, p) {
if (i[u]) return;
i['PagurianObjectName'] = p;
i[p] = i[p] || function() {
return (i[p].q = i[p].q || []).push(arguments)
};
s = d.createElement(o);
s.src = "src/core/sea.ext.js";
s.charset = "utf-8";
s.async = true;
s.id = u + "node";
f = d.getElementsByTagName(o)[0];
f.parentNode.insertBefore(s, f);
})(window, document, 'script', "seajs", "pagurian");

pagurian("config", {
base:"src",
alias: {
"jquery": "plugins/jquery/1.11.1/jquery.js"
},
preload: ["jquery"],
charset: 'utf-8',
timeout: 20000,
debug: false
});

pagurian("use", "presenter/standard/standard.app", function(app) {
app.page.message();
});

③ js怎麼載入另一張圖片src

javascript , var object= document.getElementById("img1"); object.src="static/picture/1.jpg";
如果你來想讓他在頁面加自載時就執行的話,在<body onload="你的代碼">
或者在其他你想要執行的時候,去觸發這兩條語句。比如點擊,某個控制項或對象獲得焦點等。

④ js怎麼非同步載入loading

js非同步載入loading的方法復如下制:
1、獲取載入的圖片
var image = document.images[0];
2、手動創建一個image對象
var downloadingImage = new Image();
3、調用onload事件載入src真正的鏈接地址
downloadingImage.onload = function(){
image.src = this.src; //src後置指定
};
downloadingImage.src = "目標圖片地址";

⑤ js中,如何等待多個圖片載入完後再執行其他的js代碼。

當然啦,這里抄的onload事件handler是一個非同步函數,注冊了這個事件的handler之後代碼就會繼續執行,而當onload事件觸發之後才會執行它的handler……


這樣多半可以,我給個思路吧

/*前略*/

varisReady=false;/*isReady代表img.onload是否已經被觸發*/

$img[0].onload=function(){

/*這里放上原本在onload的handler中的代碼,這里就不寫出了*/

isReady=true;/*一旦onload事件被觸發就把isReady變為true*/
});

while(!isReady)
{
/*什麼也不做,這個循環在isReady變成true之前都會一直拖著程序不繼續執行*/
}

console.log("steptwo");

/*下略*/
閱讀全文

與js如何實現非同步載入圖片相關的資料

熱點內容
如何快速將文件內容快速調整 瀏覽:349
marsandroid開發視頻教程 瀏覽:814
word信任中心 瀏覽:480
pr有哪些預設文件 瀏覽:752
寶馬5系藍牙升級 瀏覽:950
ipad壓縮文件夾不見了 瀏覽:280
蘋果怎麼隱藏軟體視頻文件怎麼打開 瀏覽:541
按一列生成excel新文件 瀏覽:941
word列印機無法列印pdf文件夾 瀏覽:866
4s刷機成功白蘋果之後黑屏 瀏覽:503
自己在網路上如何開發市場 瀏覽:830
華為手機上的硬體管理工具下載 瀏覽:767
文件列印怎麼轉pdf 瀏覽:713
jsp用什麼編程工具 瀏覽:170
復制到u盤打開後顯示文件損壞 瀏覽:996
編程中面向方向是哪個單詞 瀏覽:659
怎麼清除之前的網路認證賬號 瀏覽:215
蘋果應用老是閃退是怎麼回事啊 瀏覽:946
塗裝懸掛轉台機器人怎麼編程 瀏覽:67
電腦里的編程在什麼地方 瀏覽:580

友情鏈接