我有一个加载了很多资源的页面。
我想知道是否有任何方法可以从javascript正确加载资源。
我有:
index.html
和
<script src="myResource.js"></script>
如何在javascript中知道myResource是否正确加载而不在myResource文件中搜索某些变量。
我想做点什么:
window.network.isLoaded("myResource.js") ? 'it is loaded!' : 'it is not loaded';
这可能吗?
答案 0 :(得分:1)
您应该可以使用 select UTL_RAW.CAST_TO_VARCHAR2(dbms_lob.substr(MY_FIELD_BLOB_TYPE))
from MY_BLOB_TABLE
where MY_BLOB_TABLE_ID = 12345
;
事件侦听器实现此目的:
load
正如@pwolaq所指出的,当脚本已经加载时,此代码将不起作用。
要解决此问题,您可以使用事件委派&amp;事件捕获(并确保此代码放在之前您的脚本定义):
var $script = document.querySelector("[src='myResource.js']");
$script.addEventListener("load", function () {
// your callback's code
});
答案 1 :(得分:0)
通常脚本是同步加载的。所以下面的任何脚本:
<script src="myResource.js"></script>
可以访问其前任变量和函数。 更好的方法是检查脚本加载的资源是否存在,然后是脚本本身。
答案 2 :(得分:0)
你可以使用Javascript来做到这一点 例如,使用jQuery:
$.getScript("myResource.js", function(data, textStatus, jqxhr) {
if (jqxhr.status !== 200) {
console.error('resource could not be loaded:', textStatus);
}
});
或者,只需使用javascript:
var script = document.createElement("script");
script.setAttribute("type", "text/javascript")
script.setAttribute("src", "myResource.js");
if (typeof script === "undefined") {
console.error("resource could not be loaded");
} else {
document.getElementsByTagName("head")[0].appendChild(script);
}
答案 3 :(得分:-1)
您可以这样做:
updateProfileInformation(user: User) {
var headers = new Headers();
headers.append('Content-Type', this.constants.jsonContentType);
var t = localStorage.getItem("accessToken");
headers.append("Authorization", "Bearer " + t;
var body = JSON.stringify(user);
return this.http.post(this.constants.userUrl + "UpdateUser", body, { headers: headers })
.map((response: Response) => {
var result = response.json();
return result;
})
.catch(this.handleError)
.subscribe(
status => this.statusMessage = status,
error => this.errorMessage = error,
() => this.completeUpdateUser()
);
}
希望有所帮助