我应该在Electron桌面应用中使用单独的javascript文件还是仅使用一个大文件?

时间:2019-02-18 11:26:44

标签: javascript node.js typescript dom electron

我正在使用Electron和普通的javascript制作一个单页桌面应用程序,它是一个日志记录工具,它将通过套接字从本地程序(例如后端,而不是远程Web后端)通过套接字接收时间序列数据,所以我(不要认为带宽会成为问题),并使用javascript图表库以高速呈现数据。

主要数据流如下: 套接字->数组->绘制图表 socket->其他UI更新命令

尽管这是一个单页面的应用程序,但它具有许多组件,因此将所有代码放入一个文件中会使项目难以扩展或维护,我想知道是否应该使用OOP方式将代码分成多个javascript文件,就像我们通常在C#中所做的一样。但是我不知道这是否是一个好习惯,会招致巨大的性能开销吗?对TypeScript的使用也存在同样的担忧,我想使用它而不是普通的javascript,但不确定是否会降低应用程序的速度。

还有一个问题,我使用jQuery访问Dom,例如,$chartDiv = $('#chartDiv')document.getElementById()相比,使用前者的开销是第一次发生还是每次都发生?我使用$chartDiv吗?

1 个答案:

答案 0 :(得分:4)

回答您的大多数问题:做什么使代码更好,而不是“更快”。如果您非常担心性能,则可以使用C或汇编语言编写应用程序。单独的Electron已经引起了很多减速–它是运行解释语言,评估CSS和HTML的浏览器,您期望什么?

诸如Electron之类的东西的全部原因是因为它使开发变得更容易,特别是对于已经熟悉Web技术的人。

所以:

  • 是的,将您的应用拆分为文件。如果您不使用转译器/ uglifier,则可能会有一些开销,但这相对较小,仅在应用程序加载时发生。
  • 是的,请使用TypeScript。这是一种可移植的语言,只会在编译时为您的代码增加类型安全性-编译后会剥离掉附加信息,从而产生“香草JS”。
  • 如果您要进行大量的DOM操作并且熟悉jQuery,请继续。在现代浏览器(包括Electron)中,您不必真正担心各种功能无法正常工作,因此您想要的大多数DOM操作都是trivial without jQuery。不过,这再次是一个相对较小的放缓。 el = $('some selector')仅产生一次大多数“减速”。

还有一件事–如果您严重担心自己的表现(个人认为这会成为问题),那么最好的选择就是分析您的应用程序!使用不同的实施方案运行测试,看看哪个更快,量化性能提升。但请记住:

  

我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。但是我们不应该放弃那关键的3%的机会

     

–唐纳德·克努斯(Donald Knuth)