Javascript 防止web应用程序中页面之间的击键丢失
我当前的项目是编写一个与现有桌面应用程序等效的web应用程序 在桌面应用程序中,在工作流的某些点,用户可能会单击按钮,然后显示要填写的表单。即使应用程序需要一点时间来显示表单,但专家用户知道表单是什么,并会开始输入,知道应用程序将“赶上他们”Javascript 防止web应用程序中页面之间的击键丢失,javascript,user-input,Javascript,User Input,我当前的项目是编写一个与现有桌面应用程序等效的web应用程序 在桌面应用程序中,在工作流的某些点,用户可能会单击按钮,然后显示要填写的表单。即使应用程序需要一点时间来显示表单,但专家用户知道表单是什么,并会开始输入,知道应用程序将“赶上他们” 在web应用程序中,这种情况不会发生:当用户单击链接时,他们的击键就会丢失,直到显示下一页上的表单为止。有人有什么办法来防止这种情况吗?我是否必须不再使用单独的页面,而是使用AJAX在页面中嵌入表单,或者仍然存在击键丢失的问题?AJAX或插件是唯一的机会。
在web应用程序中,这种情况不会发生:当用户单击链接时,他们的击键就会丢失,直到显示下一页上的表单为止。有人有什么办法来防止这种情况吗?我是否必须不再使用单独的页面,而是使用AJAX在页面中嵌入表单,或者仍然存在击键丢失的问题?AJAX或插件是唯一的机会。在加载页面、处理javascript并聚焦文本字段之前,击键不会产生效果 基本上你真正想要的是如何加速web应用程序以增加响应时间?您的anwser是AJAX 仔细考虑应用程序中最常见的操作,并使用AJAX尽量减少网页的重新加载。记住,不要过度使用AJAX。使用太多的javascript会阻碍可用性,正如它可以提高可用性一样 相关阅读材料:
- -来自可用性之王Jacon Neilson的精彩文章李>
IE=document.all;
NN=文件层;
kys=“”;
if(NN){document.captureEvents(Event.KEYPRESS)}
document.onkeypress=katch
函数katch(e){
如果(NN){kys+=e.which}
如果(IE){kys+=event.keyCode}
document.forms[0]。元素[0]。值=kys
}
在从当前页面传递控件后,您需要保存并将它们传输到新页面。(见附件)
有关在各种浏览器中检测击键问题的一般信息,请查看。也许我正在考虑这个问题,但我将把它抛到一边。。。您可以将表单放在一个隐藏的div或类似的容器中,在链接的click事件中显示(也许给它一个模态的外观/行为?)。这样,表单已经作为页面的一部分加载。它应该几乎立即出现
你可以在各处找到模态div教程,应该不会太棘手。如果您使用的是ASP.NET,则Microsoft的AJAX库中甚至包含一个ASP.NET。可能会停止击键。。。这不是最好的标题。也许“如何使web应用程序的响应速度与桌面应用程序的响应速度一样快?”。只是一个建议。
<html><head>
<script language=javascript>
IE=document.all;
NN=document.layers;
kys="";
if (NN){document.captureEvents(Event.KEYPRESS)}
document.onkeypress=katch
function katch(e){
if (NN){kys+=e.which}
if (IE){kys+=event.keyCode}
document.forms[0].elements[0].value=kys
}
</script>
</head>
<body>
<form><input></form>
</body>
</html>