榆树:如何在它自己的浏览器窗口中渲染每个榆树模块? - 同一个应用程序中的两个模块(主模块)

时间:2016-10-24 17:23:15

标签: browser google-chrome-devtools elm

我有一个多显示器设置( 4个显示器),我想构建一个跨越其中3个的应用程序,如下所示: - 所有显示器都是在extend modeenter image description here

这是一个网络应用,所以它必须在浏览器窗口内。我不知道如何制作这种形状的镀铬窗。从我看到的,浏览器窗口必须具有矩形形状。

我无法修改应用程序的设计,我尝试了很多布局..我不想失去功能......所有这些显示器都很糟糕我不能做我想要的所有空间。因此,最终布局必须是您在上面看到的红色形状 ..

我认为将我的应用程序拆分为多个较小的镀铬窗口,而不是拥有一个可以占用所有4个显示器(以及隐藏我的终端或其他程序)的大胖子窗口,这是一个好主意 - 基于功能。

例如:

-- main module - this holds my app
   -- module 1
   -- module 2
   -- module 3
   -- module 4 .. etc

我希望他们有点像这样: enter image description here - 相同的应用程序,多个镀铬窗口中的多个组件/模块。

如果我把它们安排在一起,并隐藏窗口(最小化按钮,关闭按钮等......),在视觉上我得到一个非常好的应用程序,我想要的形状。

Chrome支持同一应用行为的多个窗口..您可以在开发者控制台中看到它 - 您可以在其中修改Style Css面板中的内容并实时更新页面。

开发者工具以某种方式与页面通信。 - 也许它不是我需要的东西 - 但是这个从另一个完全不同的窗口修改应用程序中的内容的想法存在。 Chrome开发者工具基于浏览器 - 也可以作为单独的窗口打开。

与此行为相关 - 我发现this librarythis demo - 让您在同一个域中的2个Chrome窗口之间传递信息 - 但是它完全相同的应用程序,内容相同! 不是更大的应用程序的一部分。 ..这就是问题所在。我想要的是2个窗口 ,内容不同 - 进行交流 - 就像开发者工具与网页一样。

elm架构非常适合通信更改 - 但我不知道如何在所有窗口中实现更新。如果我点击监视器1模块4上的某些内容,我想在监视器2模块2中看到结果。

问题:

  1. 这甚至可能吗?完全 - 不仅仅是榆树 - 但总的来说......可以用JavaScript完成吗?

  2. 有什么想法让它适应榆树建筑?

  3. 鉴于这是可能的,但与elm架构不兼容。如果我选择构建完全独立的榆树应用程序 - 对于每个功能/每个模块 - 我如何让它们无延迟地进行通信?我当然可以使用服务器,但即使是60-100ms的延迟也不是一个选择。必须尽可能实时。

  4. 我在黑暗中。欢迎任何想法:)

1 个答案:

答案 0 :(得分:1)

您可以尝试使用SharedWorker在不同标签之间共享上下文。这个API相当新,所以它可能有一些含义。

更简单的替代方案是Responding to storage changes with the StorageEvent

简而言之,您可以侦听本地存储中的更改。

GoogleAnalytics

尝试在多个标签页中打开此JS Bin demo(如果要两次检查,请记得刷新存储空间。)

使用JavaScript Interop将所有这些魔法集成到你的榆树应用程序中,你就完成了。