Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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_User Feedback - Fatal编程技术网

是否向用户提供有关Javascript函数执行的反馈?

是否向用户提供有关Javascript函数执行的反馈?,javascript,user-feedback,Javascript,User Feedback,因此,我正在用Javascript构建一个相当复杂(从我的角度来看)的客户端web应用程序 程序基本上是从用户那里获取一组(相当大的)字符串数据,从用户那里获取一组关键字,执行搜索并返回一个真/假数组 很明显,它是这样工作的: var userData = ["lorem ipsum", "dolor sit amet", " consectetur adipisicing"]; var userKeywords = ["et","or"]; var isMatch = false; for

因此,我正在用Javascript构建一个相当复杂(从我的角度来看)的客户端web应用程序

程序基本上是从用户那里获取一组(相当大的)字符串数据,从用户那里获取一组关键字,执行搜索并返回一个真/假数组

很明显,它是这样工作的:

var userData = ["lorem ipsum", "dolor sit amet", " consectetur adipisicing"];
var userKeywords = ["et","or"];
var isMatch = false;

for (var x in userData){
    var y = 0;
    while (y<userKeywords.length && !isMatch){
    isMatch = (userData[x].match(userKeywords[y]) !== null)? true : false;
    y++;
    }
}
// That would return [true, true, true]
var userData=[“lorem ipsum”、“door sit amet”、“concetetur adipising”];
var userKeywords=[“et”,“or”];
var isMatch=错误;
for(userData中的变量x){
var y=0;
而
我知道我可以计算出我向我的程序询问的任务的长度
为此,请增加一个计数器并将结果发布到DOM中

我会同意的

document.getElementById('output_progress').innerHTML = y + "/" + userData.length;

如果你不想输出任何内容,那么告诉人们该程序仍在运行的最好方法就是使用gif加载程序图像。这是我通常在应用程序中添加的内容。

根据你支持的浏览器,你可以使用web workers(每IE10是你的最低阈值),或“分块”处理程序。使用回调或承诺,您可以非常轻松地创建一个标准api,该api将支持其中任何一种—尽管webworkers将更快,UI响应将更平滑

这里有一个非常粗略的例子:(注意,在script.js的第5行,我已经禁用了web workers,因为我们的大多数浏览器无论如何都会使用它,我希望显示它在没有它们的情况下可以工作-只需删除
&&false
即可重新启用)


不幸的是,我一直很懒,只是复制并粘贴了你的代码两次。使用XHR,你可以将你的代码保存在一个位置,然后使用web worker或run函数将其拉入。runner是我过去做过的一件非常常见的事情,用于提供某种UI反馈。它需要“块”然后停止并等待一秒钟,然后转到下一个块。通常这足以让屏幕更新。

使用
setInterval
在每次调用之间稍微延迟一点运行函数,让函数执行下一步并更新进度条。嘿,我已经运行了一些测试but无法获得任何令人满意的结果..JQuery(或本机JS getElementById)在函数运行之前不更新DOM。当处理完所有数据后,DOM最终更新为最高值…即使我使用回调函数,或者如果我设置了间隔/超时,也会发生这种情况-这很奇怪。我不知道web workers,我必须先了解更多关于他们的信息-我认为is确实是解决方案。目前我的项目必须在本地运行(在进一步验证之前),这不允许我使用web workers(webkit本地不支持).无论如何,谢谢你,非常有用!如果你是在本地构建,我真的建议你使用这样的东西-安装起来不像Apache那么麻烦,让你真正刺激一个工作环境。
document.getElementById('output_progress').innerHTML = y + "/" + userData.length;