【发布时间】:2016-08-08 19:14:19
【问题描述】:
有谁知道是否有办法为新窗口强制使用新的 JavaScript 线程?
我有一个 ExtJs 应用程序,其渲染步骤正在扼杀用户交互。我现在不能扔掉整个 Ext 应用程序,所以我设计了一种方法来利用 localStorage 来管理浏览器窗口之间的传递事件,并用一个新的 Angular2 应用程序替换应用程序的高活动数据输入部分分机应用程序的窗口。
虽然 Angular2 方面的表现非常出色,但当带有 Ext 应用程序的父窗口在渲染步骤期间挂起时,带有 Angular2 应用程序的窗口也会挂起,导致用户丢失击键(这很糟糕)。
理想情况下,能够将 Angular2 应用的 JavaScript 线程与 Ext 分离是我想做的事情。
有谁知道这是否可行?
【问题讨论】:
-
为什么不直接生成一个工人呢?
-
为了哪个?除非我在工人的工作方式中缺少某些东西,否则工人对我没有好处?当 ExtJS 应用程序处于渲染步骤时,它会锁定主 JS 线程,这是唯一可以与锁定两个窗口的 DOM 交互的线程(也就是发生在另一个窗口中的数据输入)。
-
不要认为会有跨浏览器的方式来做到这一点。请注意,如果您在 I 浏览您的网站时这样做,我会非常恼火 - 我使用 Firefox 并且打开一个新窗口似乎非常昂贵(我的插件没有' t 似乎有帮助) - 打开一个新窗口往往会导致所有浏览器实例一次挂起长达 10 秒。都是因为你认为
window.open会减少挂起。 -
这是一个基于 PHP 和 RPG 的大型企业 ExtJS 4.2 单页应用程序,而不是面向消费者的网站。遗憾的是,这 比在实际应用程序中执行数据输入的性能更高。
标签: javascript multithreading extjs window.open