当promise中发生错误时,数据缓存在服务器或客户端上,或者根本不缓存在AngularJS中
Is data cached on server or client or not at all in AngularJS when an error occurs in a promise?
请记住,我运行的是旧版本的AngularJS(1.0?),所以情况可能已经改变,但我的代码看起来像:
promise = $http.get(urlFormattedString).success(function (data) {
data.forEach(function (result) {
//do something with result and $scope});
promises.push(promise);
$q.all(promises).then(function (data) {
//do something good when everything works!
};
当没有抛出错误时,一切都"正常",但我的问题是,当其中一个承诺抛出错误(比如20中的1)时会发生什么?让我们让它更有趣(更接近我的应用程序),并假设每个promise都是从数据库(在我的例子中是MongoDB)请求数据。
如果我必须重新运行所有内容,这是否意味着所有数据都必须重新获取?我是否依赖数据库来缓存数据,从而使重复请求运行得更快?或者可能是服务器(在我的例子中是NodeJS)缓存数据?按照这些思路,数据实际上是什么时候从服务器发送到客户端的?是只有在所有承诺成功后,还是每个承诺的数据都单独返回给客户?如果是的话,Angular会缓存吗?
把它放在这里让我意识到这是非常复杂的,需要考虑很多场景。如有任何有关阅读/文档方面的帮助或建议,不胜感激。谢谢
建议您熟悉浏览器开发工具的网络选项卡。
您可以看到对所有资源的每一个请求,从html到图像再到脚本,以及ajax请求。这将让你更好地了解应用程序在中的工作方式
至于错误。。。除非你实现了错误处理,否则你的应用程序只会在没有任何错误指示的情况下失败。
至于缓存。。。您的ajax请求不会缓存在客户端,除非您在服务器上实现了缓存机制,否则它们也不会缓存在那里
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 如何在从浏览缓存加载页面时执行javascript
- 用于检查数组中是否存在元素的javascript自定义方法
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 缓存谷歌地图数据
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 正在将事件处理程序添加到不存在的类
- 是否存在React Native“;WEB代码安全防护”;
- 一个密码测试程序,如果存在空格,它会提醒用户
- 验证会话中是否存在对象's数组
- 将此 pdf 保存在 ionic 上的缓存/本地存储中
- 我的网站存在火狐缓存问题
- 当promise中发生错误时,数据缓存在服务器或客户端上,或者根本不缓存在AngularJS中
- Javascript:检测是否缓存了请求的文件,如果存在较新版本,则删除缓存
- GhostDriver 在现有元素上执行 javascript 时引发陈旧异常“元素在缓存中不存在”
- JS -画布从图像文件-工作仅与浏览器缓存存在
- 强制缓存控制:无缓存在Chrome浏览器通过XMLHttpRequest在F5重新加载