Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在用户重新刷新后重新填充表单数据而不在重新加载时显示空白控件?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何在用户重新刷新后重新填充表单数据而不在重新加载时显示空白控件?

Javascript 如何在用户重新刷新后重新填充表单数据而不在重新加载时显示空白控件?,javascript,jquery,html,Javascript,Jquery,Html,目前,为了恢复用户填写的值,我们正在使用localstorage。当用户在文本框中输入任何值时,我们通过以下方式将该值保存在localstorage中: localStorage.setItem("city", JSON.stringify({"cityId":id,"cityName":value})); 要在页面加载时恢复此值,我们正在执行以下操作: window.onload = function () { var cityInfo = localStorage.getItem(

目前,为了恢复用户填写的值,我们正在使用localstorage。当用户在文本框中输入任何值时,我们通过以下方式将该值保存在localstorage中:

localStorage.setItem("city", JSON.stringify({"cityId":id,"cityName":value}));
要在页面加载时恢复此值,我们正在执行以下操作:

window.onload = function () {
    var cityInfo = localStorage.getItem("city");
    if (cityInfo !== null) {
        var json = JSON.parse(cityInfo )
        $("#cityId").val(json.cityName);
        $("#cityName").attr(id, json.cityId);
    }
}
这里有几个问题:

  • 小问题:此解决方案仅适用于支持本地存储的web浏览器
  • 主要问题:用户刷新页面后,此值在onload事件后恢复,这需要花费太多时间

您是否已经尝试过这个。。。Localstorage是唯一的本地持久性存储选项,通常使用数据库会更慢。您可以尝试将localstorage检索作为脚本放在文档顶部,而不是将其包装为onload-但是,如果表单在完成localstorage恢复之前未加载到DOM中,则尝试填充时将失败。