最佳答案
我们都知道 全局变量绝不是最佳实践。但是有些情况下,如果没有它们就很难编码。您使用什么技术来避免使用全局变量?
例如,给定以下场景,如何不使用全局变量?
JavaScript 代码:
var uploadCount = 0;
window.onload = function() {
var frm = document.forms[0];
frm.target = "postMe";
frm.onsubmit = function() {
startUpload();
return false;
}
}
function startUpload() {
var fil = document.getElementById("FileUpload" + uploadCount);
if (!fil || fil.value.length == 0) {
alert("Finished!");
document.forms[0].reset();
return;
}
disableAllFileInputs();
fil.disabled = false;
alert("Uploading file " + uploadCount);
document.forms[0].submit();
}
相关标记:
<iframe src="test.htm" name="postHere" id="postHere"
onload="uploadCount++; if(uploadCount > 1) startUpload();"></iframe>
<!-- MUST use inline JavaScript here for onload event
to fire after each form submission. -->
这段代码来自一个包含多个 <input type="file">
的 web 表单。它一次上传一个文件,以防止出现巨大的请求。它通过对 iframe 进行 职位ing 来完成这项工作,等待响应启动 iframe onload,然后触发下一次提交。
你不需要特别回答这个例子,我只是提供它作为参考,在这种情况下,我无法想出一种方法来避免全局变量。