如何通过nashorn在Web应用程序启动期间加载js文件

时间:2016-04-22 17:36:18

标签: javascript java spring nashorn

我正在开发一个应用程序,它在浏览器的第一次访问期间在客户端加载多个js文件。加载我们的应用程序的第一页需要安静一点时间,这可以使用服务器端渲染进行改进。

我们在后端应用程序中使用java和spring。所以我正在寻找一种方法在应用程序加载(服务器启动)而不是客户端加载服务器端的所有js文件。所以我从jsp中删除了js文件引用,我试图使用nashorn加载js文件,如下所示:

@Configuration
public class ConfigureScript {

  @Bean
  ScriptTemplateConfigurer configurer() {
    ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer();
    configurer.setEngineName("nashorn");
    configurer.setScripts("/js/common/common.js", "/js/utils/utils.js");
    configurer.setRenderFunction("render");
    configurer.setSharedEngine(false);
    return configurer;
  }
}

但不知何故,这似乎对我不起作用,因为应用程序只是继续加载。你们可以用上面的代码或其他一些方法来建议服务器端加载js文件的问题吗?

另外,如果你能建议有没有办法调试是否正确加载了js文件?

1 个答案:

答案 0 :(得分:0)

  1. 用于调试我使用postman chrome插件。当服务器端呈现发生时 - 点击基本网址(例如" /"或任何其他假设)返回内容而不是jsp模板。
  2. 从jsp中删除js文件 - 不确定这是否正确。在服务器端渲染之后,js应该在浏览器中处理一些用户交互,除非从服务器返回的内容是静态的,这可能没问题。
  3. 在上面的剪辑中 - 加载了两个文件。 nashorn的工作方式 - 它构建了渲染所需的整个js对象层次结构。那些文件够吗?执行"渲染"函数应该承担渲染的工作。