Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 Angular JS、$watch和web性能_Angularjs - Fatal编程技术网

Angularjs Angular JS、$watch和web性能

Angularjs Angular JS、$watch和web性能,angularjs,Angularjs,我想问一个问题,假设我的网页像一个文本编辑器,我有一些用户可以写的框。 假设我想在angular中实现autosave。我有一些ng型号的盒子里面的信息,现在我用ng手表听我所有的盒子型号。 因此,在正常的用户模式下,ng watch不断地发现我的型号在变化。 此方法是否会在我的web应用程序中产生低性能? 如果有,你会推荐我一种在angular上实现自动保存的方法吗 -----------编辑--------- 简言之:我想知道的是,如果使用$watch查看不断变化的多个作用域,可能会影响网页

我想问一个问题,假设我的网页像一个文本编辑器,我有一些用户可以写的框。 假设我想在angular中实现autosave。我有一些ng型号的盒子里面的信息,现在我用ng手表听我所有的盒子型号。 因此,在正常的用户模式下,ng watch不断地发现我的型号在变化。 此方法是否会在我的web应用程序中产生低性能? 如果有,你会推荐我一种在angular上实现自动保存的方法吗

-----------编辑---------


简言之:我想知道的是,如果使用$watch查看不断变化的多个作用域,可能会影响网页性能

也许您只能通过
ng model
将文本绑定到模型,并制作一个具有所需间隔的计时器。该计时器随后将状态发布到后端

关于表演,ng watch会,正如你所说的,经常开火。您可能希望每次击键都有流量到后端

希望有帮助!如果需要,请询问更多信息:)

编辑: 如果您想要实时更新,您应该查看socket.io之类的东西

编辑2: 我既不担心性能,也不担心简单性。我已经使用了几次
ng-watch
,一切都变得难以调试。
干杯

好吧,你可以选择“ng change”或ng blur,而不是$watch'ing这些模型。 如果您使用ng change,那么您还可以设置一个计时器,该计时器仅在用户停止键入一秒钟后重新评估您的模型

ng blur仅在用户完成键入并模糊/取消聚焦输入后触发一次


注意:如果您不想太频繁地向后端发送自动保存请求,您可以在客户端(使用localStorage)自动保存,这将是即时的。然后,一旦用户完成编辑并提交表单/准备继续,您就可以将最终保存的信息发送到服务器。

angularJS文本编辑器插件。嗯,我的作用域更复杂,我的webapp也不是一个文本编辑器,我想知道的是,如果使用$watch查看多个不断变化的作用域,会影响网页性能,那么
ng change
可能是更好的选择吗?或者,您是否需要在键入范围时立即对其进行即时更新?您可以使用ng change来代替手表。为了避免每次更改都保存,您可以使用ngModelOptions的debounce功能:只有在用户处于一段不活动状态后才会调用change函数。或者您可以简单地使用每N秒保存一次的间隔。或者两者兼而有之。网页性能不是我所担心的。我担心的是向后端发送数百个请求以保存每次击键。实时更新对我来说非常好,但ng更改可能会有所帮助!谢谢,我知道连续调用后端会影响性能,在我的情况下,我不是调用后端,只是在其他范围内执行更改我知道我有很多方法来实现它,但正如我所说,好奇的问题是,如果在倍数范围内$watch会影响web性能