JavaScript WP8.1 和 WP10 的应用程序是否以相同的方式处理?

Are JavaScript apps for WP8.1 and WP10 processed in the same way?

我用 JS 编写了 Liquid Dynamics 引擎。它究竟如何工作并不重要,只要说一件事:它执行繁重的计算。

因此,我尝试在 WP8.1 和 WP10 上使用该引擎启动一个项目。两个平台的项目(和所有源文件)完全相同。

在 WP8.1 中它工作得非常完美。但是在 WP10 中我可以看到 UI 没有响应。特别是,'click' 和 'pointerdown' 事件处理程序不会被触发。 在深入挖掘之后,我发现如果我减少计算负载(减少液体分辨率并排除一些代码片段),那么事件处理程序就会在 WP10 中开始工作(可以被触发)。

两个设备内部的CPU几乎是一样的。我无法相信 WP10 设备无法处理此有效负载。

不仅如此,这个问题可以在模拟器中重现。在 WP8.1 模拟器中它可以工作,在 WP10 模拟器中 'click' 和 'pointerdown' 事件处理程序不会被触发。但是如果我减少有效负载,处理程序就会开始在 WP10 模拟器中工作。如您所见,CPU 对于两个模拟器来说完全相同(它在我的 PC 中,模拟器所在的位置)。

谁能解释一下这是怎么回事?在这两种情况下,调试控制台内都没有错误。

所以,也许问题实际上是 WP8.1 使用了 Chakra (JScript) 引擎(就像在 IE11 中一样),但是 Windows 10 Mobile 使用了 Chakra (JavaScript) 引擎(就像在 IE11 中一样)边缘)。但这只是假设。

根据我的经验,我唯一能给出的建议是不要在 Windows 10 上 运行 WP8.1 JavaScript 应用程序。有必要创建另一个 UWP 应用程序。幸运的是,Visual Studio 允许在一个解决方案中开发多个项目。因此,源代码可以很容易地从一个项目复制到另一个项目,或者(甚至更好)可以将其隔离到其他项目可以引用的单独项目中。

Windows Store 还允许在一个应用程序中将多个包发布到不同的 OS。

当我创建新的 UWP 应用程序并在其中插入我的代码时,它开始正常工作。