我在JS上写了Liquid Dynamics引擎。它究竟是如何工作并不重要,只需说一句:它执行繁重的计算。
因此,我尝试在WP8.1和WP10上使用此引擎启动项目。两个平台的项目(和所有源文件)完全相同。
在WP8.1中,它的工作非常完美。但是在WP10中,我可以看到UI没有响应。特别是,点击'和'指针下降'事件处理程序不会被触发。 在深入挖掘之后,我发现如果我减少计算有效负载(降低液体分辨率并排除一些代码片段),那么事件处理程序在WP10中开始工作(可以被触发)。
两个设备内的CPU几乎相同。我无法相信WP10设备无法处理此有效负载。
不仅如此,这个问题可以在模拟器中重现。在WP8模拟器里面,WP8.1模拟器内部可以正常工作,点击'和'指针下降'事件处理程序不会被触发。但是,如果我减少有效负载,处理程序开始在WP10模拟器内部工作。正如您所看到的,两个仿真器的CPU完全相同(它位于我的PC中,仿真器在其中)。
任何人都能解释一下发生了什么吗?在这两种情况下,调试控制台内部都没有错误。
答案 0 :(得分:0)
所以,也许问题实际上是WP8.1使用Chakra(JScript)引擎(如IE11内部),但Windows 10 Mobile使用Chakra(JavaScript)引擎(如内部Edge)。但这只是假设。
根据我的经验,我可以提供的唯一建议是不要在Windows 10上运行WP8.1 JavaScript应用程序。有必要改为创建另一个UWP应用程序。幸运的是,Visual Studio允许在一个解决方案中开发多个项目。因此,源代码可以很容易地从一个项目复制到另一个项目,或者(甚至更好)它可以被隔离到其他项目可以引用的单独项目中。
Windows Store还允许将多个软件包发布到一个应用程序内的不同操作系统。
当我创建新的UWP应用并在那里插入我的代码时,它开始正常工作。