Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
不断更新视图angularJs_Angularjs - Fatal编程技术网

不断更新视图angularJs

不断更新视图angularJs,angularjs,Angularjs,我想更新视图,即使更改发生在不同的计算机上,也不刷新页面。我尝试设置间隔并每10秒调用一次api,清除我的缓存。这里的问题是,每隔十秒钟我就必须重新加载所有数据,并且为了更新视图,我应该切换状态。有没有更好的方法来处理这个问题?我设法解决了这个问题。我创建了一个函数,检查来自服务器的数据是否与来自模型的数据相等,如果不相等,我更新缓存不删除它和模型 this.refresh = function(){ apiSer

我想更新视图,即使更改发生在不同的计算机上,也不刷新页面。我尝试设置间隔并每10秒调用一次api,清除我的缓存。这里的问题是,每隔十秒钟我就必须重新加载所有数据,并且为了更新视图,我应该切换状态。有没有更好的方法来处理这个问题?

我设法解决了这个问题。我创建了一个函数,检查来自服务器的数据是否与来自模型的数据相等,如果不相等,我更新缓存不删除它和模型

 this.refresh = function(){                                    
    apiService.someFunction(false) //the false is parametr for cache                      
       .then(function(someValue) {
           if(someValue.length !== vm.model.length){  //check if the model is equal with the data from database                                                                
              var cache = $cacheFactory.get('$http')
              var get = cache.get('URL');   //getting the cache                      
              var data = angular.toJson(someValue); //turn response from then to Json
              get[1] = data; //changing the cache data                      
              vm.model= someValue; //changing the model data
           }
     })
}

我成功地解决了这个问题。我创建了一个函数来检查来自服务器的数据是否与来自模型的数据相等,如果不相等,我更新缓存而不删除它和模型

 this.refresh = function(){                                    
    apiService.someFunction(false) //the false is parametr for cache                      
       .then(function(someValue) {
           if(someValue.length !== vm.model.length){  //check if the model is equal with the data from database                                                                
              var cache = $cacheFactory.get('$http')
              var get = cache.get('URL');   //getting the cache                      
              var data = angular.toJson(someValue); //turn response from then to Json
              get[1] = data; //changing the cache data                      
              vm.model= someValue; //changing the model data
           }
     })
}

对于要更新的视图,我应该切换状态:否。对于要更新的视图,您应该更改模型,也就是说,视图的$scope中有什么。是的,你说得对。我可以每10秒调用一次api,如果我当前的模型与我从数据库获取的数据不同,请更新模型。然后,这个问题就解决了?@MikkoViitala还没有。我尝试更新我的模型,但我使用$http缓存,所以它不会更新任何内容。这就是我试图避免的删除缓存并每隔10秒重新加载一次。这会降低我整个应用的速度。要更新视图,我应切换状态:否。要更新视图,您应更改模型,也就是说,视图的$scope中有什么。是的,你说得对。我可以每10秒调用一次api,如果我当前的模型与我从数据库获取的数据不同,请更新模型。然后,这个问题就解决了?@MikkoViitala还没有。我尝试更新我的模型,但我使用$http缓存,所以它不会更新任何内容。这就是我试图避免的删除我的缓存并每隔10秒重新加载一次。这会降低我整个应用程序的速度。虽然这可能有效,但效率极低,因为您正在对完全相同的数据进行两次数据调用。你真的应该考虑使用SoCKS.IO或类似的套接字库,如果你想要实时通信。我知道,问题是服务器已经存在,它的共享主机,他们不想离开,因此,我无法使用node.js安装sockets.io。如果他们决定更改服务器,我将更新应用程序。如果您对服务器实现有任何发言权,是否有一个端点在每次后续调用中仅返回更改的数据?然后将其扩展到现有的“模型”@MikkoViitala我可以这样做,我可以在服务器上的每次保存和更新都使用一个返回,只返回新数据。但问题是,如果两台不同的计算机连接,并且第一台计算机发生了更改,那么第二台计算机应该刷新视图以查看该更改,因为模型将只更新到第一台计算机。我计划每隔20秒使用一次我在上面写的函数,这样我就可以更新我的视图。虽然这可能有效,但效率非常低,因为您要对完全相同的数据进行两次数据调用。你真的应该考虑使用SoCKS.IO或类似的套接字库,如果你想要实时通信。我知道,问题是服务器已经存在,它的共享主机,他们不想离开,因此,我无法使用node.js安装sockets.io。如果他们决定更改服务器,我将更新应用程序。如果您对服务器实现有任何发言权,是否有一个端点在每次后续调用中仅返回更改的数据?然后将其扩展到现有的“模型”@MikkoViitala我可以这样做,我可以在服务器上的每次保存和更新都使用一个返回,只返回新数据。但问题是,如果两台不同的计算机连接,并且第一台计算机发生了更改,那么第二台计算机应该刷新视图以查看该更改,因为模型将只更新到第一台计算机。我计划每隔20秒使用我上面写的函数,这样我就可以更新我的视图。