Meteor 我应该如何设计多屏幕功能?
我使用一个带有工作区的webapp,用户可以在其中创建、加载和编辑文档。这个工作区由几个区域组成,每个区域负责工作的一部分。加载到工作区中的一组文档称为“项目”,并存储在“项目”集合中 项目中涉及的数据有两种类型:Meteor 我应该如何设计多屏幕功能?,meteor,Meteor,我使用一个带有工作区的webapp,用户可以在其中创建、加载和编辑文档。这个工作区由几个区域组成,每个区域负责工作的一部分。加载到工作区中的一组文档称为“项目”,并存储在“项目”集合中 项目中涉及的数据有两种类型: 附加到项目的一组文档。它存储在“项目”集合中的mongo文档中 特定用户正在处理的当前文档。我还没有存储它,我只是使用一组全局反应变量来加载一个文档和用户单击它时附加的信息。这意味着每次用户访问工作区/项目时,他都不会找到以前加载的文档,但根本不会加载任何文档 现在,我想存储第二类数
每个选项都有严重的缺点,我想知道哪一个对您来说似乎更好,以及您是否可以考虑其他替代方案。您应该能够使用Meteor的其中一个选项,特别是如果您不担心不支持非HTML5浏览器的话。。。无法提供大量关于哪些内容没有使用的指导,但HTML5本地存储可以跨选项卡使用,似乎是一个存储数据的好地方,无需往返服务器,同时也允许数据在选项卡之间持久化 您还可以通过向应用程序中添加一个侦听器,用于本地存储
setitem()
和removietem()
事件,从而推出您自己的实现(可能比试图找到一个完全符合您需要的包要简单),下面的代码就是从中无耻地复制出来的
if (window.addEventListener) {
// Normal browsers
window.addEventListener("storage", handler, false);
} else {
// for IE (why make your life more difficult)
window.attachEvent("onstorage", handler);
};
function handler(e) {
console.log('Successfully communicate with other tab');
console.log('Received data: ' + localStorage.getItem('data'));
//Add in your code to display the document on the second tab
}
localStorage.setItem('data', 'hello world');
你的问题太宽泛了。试着一次只关注一个问题,而不是轮询用例的解决方案,让我们判断哪个选项是最好的。例如:在windows之间交换数据。