摘要:在前端開發(fā)中,經(jīng)常需要用從后臺獲取動態(tài)數(shù)據(jù),因此不能寫死,而要動態(tài)加載。問題描述實習(xí)期間在做一個需求的過程中碰到需要從后臺動態(tài)加入的問題。因此不能采取上述方法來動態(tài)加載。
在Web前端開發(fā)中,經(jīng)常需要用ajax從后臺獲取動態(tài)數(shù)據(jù),因此不能寫死,而要動態(tài)加載js。
問題描述:實習(xí)期間在做一個需求的過程中碰到需要從后臺動態(tài)加入js的問題。
首先,我給出的解決方案是:
其中向url_demo發(fā)送http請求,返回一個json串,其中包括我們想要的url,這里的url是一段js,獲取url后賦值給內(nèi)部嵌入了一段腳本之后,就不能修改其屬性值了。因此不能采取上述方法來動態(tài)加載js。
解決方案可修改為:
也就是多帶帶拎一個,里面不加任何js代碼,然后用另外的編寫js腳本前一個的src屬性進(jìn)行修改,達(dá)到頁面動態(tài)加入js的要求。
后來導(dǎo)師說上面的做法有點low,而且“極具創(chuàng)造力”(不過發(fā)現(xiàn)了一個問題然后解決了,還是不錯滴),就要我去找loadjs的常規(guī)方法,這里借用一下玉伯seajs里的loadJs方法,學(xué)習(xí)一下大神的寫法:
function loadJs(url , callback){ var node = document.createElement("script"); node[window.addEventListener ? "onload":"onreadystatechange"] = function(){ if(window.addEventListener || /loaded|complete/i.test(node.readyState)){ callback(); node.onreadystatechange = null; } } node.onerror = function(){}; node.src = url; var head = document.getElementsByTagName("head")[0]; head.insertBefore(node,head.firstChild); }
用法如下:
$(function(){ $.ajax({ type: "GET", data: {captchaType:1}, url: "demo_url", dataType: "jsonp", jsonp: "callback" }).done(function(json){ if (json.code == 0) { //參數(shù)url和回調(diào)函數(shù) loadJs(json.url, fCb); } }); function fCb(){ //回調(diào)函數(shù),第一次需要用到上述url對應(yīng)js腳本的函數(shù) init("container1", "point"); } })
好啦,還是看的、學(xué)的太少了,以后要多看大牛的寫法,只有看得多了,才能不會一頭鉆進(jìn)死胡同里。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/80237.html
摘要:測試動態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測試頁面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對象使用對象轉(zhuǎn)參數(shù) js實用方法記錄-動態(tài)加載css/js 1.動態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:測試動態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測試頁面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對象使用對象轉(zhuǎn)參數(shù) js實用方法記錄-動態(tài)加載css/js 1.動態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:測試動態(tài)加載到標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用加載成功動態(tài)加載腳本地址回調(diào)函數(shù)加載樣式站中下載打開方法測試頁面跳轉(zhuǎn)到微信中不能打開其他安卓手機(jī)嘗試調(diào)用未指定需要打開的可參考自定義協(xié)議參數(shù)轉(zhuǎn)換參考參數(shù)轉(zhuǎn)對象使用對象轉(zhuǎn)參數(shù) js實用方法記錄-動態(tài)加載css/js 1.動態(tài)加載js文件到head標(biāo)簽并執(zhí)行回調(diào)方法調(diào)用:dynamicLoadJs(http://www.yimo.link/static/...
摘要:屬性共中狀態(tài)初始狀態(tài)加載中加載完成已加載并可與用戶交互,但還需要加載圖片等其他資源全部資源加載完成文檔加載順序解析結(jié)構(gòu)加載外部腳本和樣式表文件解析并執(zhí)行腳本樹構(gòu)建完成加載外部資源文件圖片等頁面加載完成動態(tài)加載公共方法動態(tài)加載外部文件,并執(zhí)行 DOM readyState屬性共5中狀態(tài) uninitialized:初始狀態(tài) loading:document加載中 loaded: ...
摘要:屬性共中狀態(tài)初始狀態(tài)加載中加載完成已加載并可與用戶交互,但還需要加載圖片等其他資源全部資源加載完成文檔加載順序解析結(jié)構(gòu)加載外部腳本和樣式表文件解析并執(zhí)行腳本樹構(gòu)建完成加載外部資源文件圖片等頁面加載完成動態(tài)加載公共方法動態(tài)加載外部文件,并執(zhí)行 DOM readyState屬性共5中狀態(tài) uninitialized:初始狀態(tài) loading:document加載中 loaded: ...
閱讀 3466·2021-11-24 10:30
閱讀 3337·2021-11-22 15:29
閱讀 3775·2021-10-28 09:32
閱讀 1402·2021-09-07 10:22
閱讀 3409·2019-08-30 15:55
閱讀 3691·2019-08-30 15:54
閱讀 3568·2019-08-30 15:54
閱讀 2897·2019-08-30 15:44