在spa和传统网页之间共享javascript

时间:2015-08-13 13:00:55

标签: javascript node.js playframework requirejs commonjs

我有一个节点spa,它包含许多单独的JavaScript文件(反应组件等)。这些是使用commonjs管理的,然后由browserify捆绑到一个文件bundle.js中。我正在使用play framework 2.4来服务spa,处理spa的rest api,以及模板化一些传统的网页。

现在这对我的网络应用程序来说效果很好,但我正处于我想在我的传统网页(不是水疗中心)添加一些javascript的阶段,我希望能够重用像反应来自水疗中心的成分,所以我不必复制模态的代码等等。

从我的研究到目前为止,我一直在努力寻找一个好的解决方案。我已经读过requirejs更加浏览器友好,所以我想也许我可以转储节点并将我的所有代码移动到play框架的公共资源中并让它来处理它,但我不确定是怎么设置requirejs的上班。或许我应该保留节点,并且像我目前一样拥有一个javascript包,但是有些代码会查看当前页面的url来检查要做什么,这样用户只需为整个站点下载一个包

我真的很难找到一个我很满意的解决方案,如果有人可以链接到一个有很好的方法来构建我的上述场景的项目,或者一些关于最佳实践的建议,那就太棒了。我觉得以前其他人一定是我的情况,并找到了一个很好的解决方案。

1 个答案:

答案 0 :(得分:0)

所以我使用的解决方案是让所有页面加载我的bundle.js。然后,入口点查看当前URL并在可能页面上的开关中匹配它。虽然如果您只访问单个传统网页,则必须加载大型捆绑包,但后续请求有望从缓存中检索bundle.js。这抵消了初始页面请求的缺点。