javascript - AngularJs 应用程序无法监听另一个窗口中的 localStorage 更改

标签 javascript angularjs websocket local-storage

在我的 AngularJS 应用程序中,两个窗口通过 localStorage 进行通信,以便使用单个 Websocket 连接。主窗口监听来自服务器的消息,将传入的数据放入 localStorage 属性中。子窗口在此属性上使用 Angular $watch 将传入数据放入网格中。要求使用不同的窗口和单个连接。

问题在于,子窗口的 Controller 似乎无法观看 localStorage 属性,直到浏览器开发工具(F12)未打开。

如何解决这个问题?

最佳答案

我有一个也使用 localstorage 和 localforage.js 的 Angular 项目。不过,这个说法确实将您的问题缩小到了开发工具,不是吗?:

"until the browser development tool (F12) is not open."

确保未选中此框。

enter image description here

重新加载页面并重试。

或者您可以尝试以下解决方案:Using localstorage checks in a different window使用window.postMessage()

我们的 QA 团队报告了由于使用本地存储打开两个窗口而产生的几个错误,因此数据访问必须紧密同步。因此子窗口会将数据发送到处理本地存储的父窗口。

关于javascript - AngularJs 应用程序无法监听另一个窗口中的 localStorage 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545913/

相关文章:

c++ - 用于编码和解码 websocket 帧的 C 或 C++ 库

javascript - 将 Adsense 添加到 html

javascript - onclick 切换插入的元素

javascript - 删除监听器范围内的事件监听器

javascript - 使用 HTML2CANVAS 将 html 保存为图像

javascript - Angular 2 - 如何使我的 index.html 文件标题和元标签的关键字和描述动态

node.js - 基准 socket.io

javascript - 使用 grunt-exec 和 powershell 执行 linkchecker.exe

javascript - AngularJS:如何避免匿名 promise 处理程序

php - PHP Websockets服务器在256个用户后停止接受连接