Wrap entire error loading script in anonymous function to avoid leaks
This commit is contained in:
parent
0ffd4d60d9
commit
84db8d8866
@ -8,54 +8,56 @@
|
||||
* so that the timeout can be triggered while slow JS is loading
|
||||
*/
|
||||
|
||||
function displayReload() {
|
||||
var loadingReload = document.getElementById("loading-reload");
|
||||
if (loadingReload) {
|
||||
loadingReload.style.display = "block";
|
||||
}
|
||||
}
|
||||
(function() {
|
||||
var displayReload = function displayReload() {
|
||||
var loadingReload = document.getElementById("loading-reload");
|
||||
if (loadingReload) {
|
||||
loadingReload.style.display = "block";
|
||||
}
|
||||
};
|
||||
|
||||
var loadingSlowTimeout = setTimeout(function() {
|
||||
var loadingSlow = document.getElementById("loading-slow");
|
||||
var loadingSlowTimeout = setTimeout(function() {
|
||||
var loadingSlow = document.getElementById("loading-slow");
|
||||
|
||||
// The parent element, #loading, is being removed when the app is loaded.
|
||||
// Since the timer is not cancelled, `loadingSlow` can be not found after
|
||||
// 5s. Wrap everything in this block to make sure nothing happens if the
|
||||
// element does not exist (i.e. page has loaded).
|
||||
if (loadingSlow) {
|
||||
loadingSlow.style.display = "block";
|
||||
// The parent element, #loading, is being removed when the app is loaded.
|
||||
// Since the timer is not cancelled, `loadingSlow` can be not found after
|
||||
// 5s. Wrap everything in this block to make sure nothing happens if the
|
||||
// element does not exist (i.e. page has loaded).
|
||||
if (loadingSlow) {
|
||||
loadingSlow.style.display = "block";
|
||||
displayReload();
|
||||
}
|
||||
}, 5000);
|
||||
|
||||
document.getElementById("loading-reload").addEventListener("click", function() {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
window.g_LoungeErrorHandler = function LoungeErrorHandler(e) {
|
||||
var title = document.getElementById("loading-title");
|
||||
title.textContent = "An error has occured";
|
||||
|
||||
var message = document.getElementById("loading-page-message");
|
||||
message.textContent = "An error has occured that prevented the client from loading correctly.";
|
||||
|
||||
var summary = document.createElement("summary");
|
||||
summary.textContent = "More details";
|
||||
|
||||
var data = document.createElement("pre");
|
||||
data.textContent = e.message; // e is an ErrorEvent
|
||||
|
||||
var info = document.createElement("p");
|
||||
info.textContent = "Open the developer tools of your browser for more information.";
|
||||
|
||||
var details = document.createElement("details");
|
||||
details.appendChild(summary);
|
||||
details.appendChild(data);
|
||||
details.appendChild(info);
|
||||
message.parentNode.insertBefore(details, message.nextSibling);
|
||||
|
||||
window.clearTimeout(loadingSlowTimeout);
|
||||
displayReload();
|
||||
}
|
||||
}, 5000);
|
||||
};
|
||||
|
||||
document.getElementById("loading-reload").addEventListener("click", function() {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
window.g_LoungeErrorHandler = function LoungeErrorHandler(e) {
|
||||
var title = document.getElementById("loading-title");
|
||||
title.textContent = "An error has occured";
|
||||
|
||||
var message = document.getElementById("loading-page-message");
|
||||
message.textContent = "An error has occured that prevented the client from loading correctly.";
|
||||
|
||||
var summary = document.createElement("summary");
|
||||
summary.textContent = "More details";
|
||||
|
||||
var data = document.createElement("pre");
|
||||
data.textContent = e.message; // e is an ErrorEvent
|
||||
|
||||
var info = document.createElement("p");
|
||||
info.textContent = "Open the developer tools of your browser for more information.";
|
||||
|
||||
var details = document.createElement("details");
|
||||
details.appendChild(summary);
|
||||
details.appendChild(data);
|
||||
details.appendChild(info);
|
||||
message.parentNode.insertBefore(details, message.nextSibling);
|
||||
|
||||
window.clearTimeout(loadingSlowTimeout);
|
||||
displayReload();
|
||||
};
|
||||
|
||||
window.addEventListener("error", window.g_LoungeErrorHandler);
|
||||
window.addEventListener("error", window.g_LoungeErrorHandler);
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user