Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 如何在重载功能运行时更新我的UI?_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在重载功能运行时更新我的UI?

Javascript 如何在重载功能运行时更新我的UI?,javascript,angularjs,Javascript,Angularjs,我正在尝试做一个小项目,让你可以想象n皇后之谜的各种解决方案 我面临的最困难的问题之一是,在负责寻找解决方案的功能运行时,尝试更新电路板。事实上,当有人试图计算一个新的解决方案集时,我甚至无法让电路板消失,因为UI停止响应 我特别尝试的是创建和显示一个新的电路板,方法与计算结束时相同,但这次是在循环中检查给定的集合是否包含解决方案。在我的服务文件上是ln:8 this.checkSolution = function(board) { //console.log("Checking i

我正在尝试做一个小项目,让你可以想象n皇后之谜的各种解决方案

我面临的最困难的问题之一是,在负责寻找解决方案的功能运行时,尝试更新电路板。事实上,当有人试图计算一个新的解决方案集时,我甚至无法让电路板消失,因为UI停止响应

我特别尝试的是创建和显示一个新的电路板,方法与计算结束时相同,但这次是在循环中检查给定的集合是否包含解决方案。在我的服务文件上是ln:8

this.checkSolution = function(board) {

    //console.log("Checking if solution ", board, " is valid.");

    for (var i = 0; i < board.length; i++) {
      for (var j = i + 1; j < board.length; j++) {
        if (Math.abs(board[i] - board[j]) == Math.abs(i - j)) {
          return false;
        };
      };
    };

    //console.log("Solution valid...");
    return true;
};
this.checkSolution=功能(板){
//日志(“检查解决方案”,板,“是否有效”);
对于(变量i=0;i
可以在此处找到这些文件的副本

是否有办法解决此问题,并在算法运行时实时更新电路板以显示当前解决方案


这个问题与我的问题相似,实际上没有任何实际帮助。这篇文章只是简单地询问了一些真实的单词案例,其中有人希望使用Workers,而选择的答案提供了一些关于这个主题的教程的链接,尽管这些教程很有趣,但并没有帮助我解决这个问题。另一方面,我提出了一个确切的案例,并举例说明了各种困难(至少对我而言)。代码位于与我的一个模块链接的angular service中,使其与线程一起工作是不可能的

您需要的是在单独的线程中运行重载函数。一种方法是HTML5网络工作者

其思想是,繁重的计算部分单独运行,只向主线程发送消息,主线程侦听这些消息并同时处理UI

有关web workers使用的示例,请访问


下面是更健壮的文档

也许您可以使用setTimeout调用函数本身,将计数器作为参数传递。这样,其他东西将在超时之间运行。可能重复