Javascript 不使用保存按钮动态获取和存储用户文本输入
这是一个网络应用程序。 文本区域框中的用户类型信息。 信息存储在localStorage中。 现在,用户需要单击OK按钮以保留信息。 我希望信息将自动存储Javascript 不使用保存按钮动态获取和存储用户文本输入,javascript,html,web-applications,Javascript,Html,Web Applications,这是一个网络应用程序。 文本区域框中的用户类型信息。 信息存储在localStorage中。 现在,用户需要单击OK按钮以保留信息。 我希望信息将自动存储 正确的方法是什么?您的意思是将数据存储在本地存储器上?如果是,则可以在textarea上的每个按键上更新localstorage内容 范例 如果没有jQuery,我们需要确保所有或大多数浏览器都捕获了文本更改,这样我们就可以在文本更改时将多个侦听器附加到textarea元素,更新本地存储 function onTextChange(obj)
正确的方法是什么?您的意思是将数据存储在本地存储器上?如果是,则可以在textarea上的每个按键上更新localstorage内容 范例
如果没有jQuery,我们需要确保所有或大多数浏览器都捕获了文本更改,这样我们就可以在文本更改时将多个侦听器附加到textarea元素,更新本地存储
function onTextChange(obj) {
var elem = obj.target;
// If text has changed, update local-storage and save the saved
// value with the element for later checking w/o having to read
// from local-storage.
if (elem.old_value !== elem.value) {
elem.old_value = elem.value;
window.localStorage.setItem("textEntry", elem.value);
console.log('saved',elem.value);
}
return false;
} // onTextChange()
var elem=document.getElementById('textinput');
if (elem.addEventListener){
elem.addEventListener('input',onTextChange.bind(elem),false)
elem.addEventListener('keyup',onTextChange.bind(elem),false)
elem.addEventListener('change',onTextChange.bind(elem),false)
}
else if (elem.attachEvent) {
elem.attachEvent('onpropertychange', onTextChange.bind(elem))
}
有关捕获更改的事件的更多信息,请参阅和中的示例。Best暗示了一些评估标准,通常与您尝试但未显示的内容相比。这是非常主观的。最常见的方法是定期发送ajax请求,例如每60秒或2分钟发送一次,将此信息保存在服务器上。或者您可以使用WebSocket将信息更快地推送到服务器。谢谢。无论性能问题如何,为了兼容性的安全考虑。使用100ms计时器检查是否有更改并保存是否更好?我不知道计时器延迟会有什么帮助。你不知道这个人打字的速度有多快。由于所有的处理都在本地进行,因此没有任何负担。事实上,我通过检查和保存旧值引入了不必要的复杂性。无论如何,我应该保存当前值。
function onTextChange(obj) {
var elem = obj.target;
// If text has changed, update local-storage and save the saved
// value with the element for later checking w/o having to read
// from local-storage.
if (elem.old_value !== elem.value) {
elem.old_value = elem.value;
window.localStorage.setItem("textEntry", elem.value);
console.log('saved',elem.value);
}
return false;
} // onTextChange()
var elem=document.getElementById('textinput');
if (elem.addEventListener){
elem.addEventListener('input',onTextChange.bind(elem),false)
elem.addEventListener('keyup',onTextChange.bind(elem),false)
elem.addEventListener('change',onTextChange.bind(elem),false)
}
else if (elem.attachEvent) {
elem.attachEvent('onpropertychange', onTextChange.bind(elem))
}