fly*_*yer 2 html javascript gwt
最近我收到了一个网页包.我看到里面(在普通的html和js文件旁边)有一些JS文件.它看起来像这样:
4A3674A3247236B3C8294D2378462378.cache.js
FE728493278423748230C48234782347.cache.js
compilation-mappings.txt
Run Code Online (Sandbox Code Playgroud)
在.js文件里面我看到了混淆或缩小的Javascript.里面compilation-mappings.txt的cache.js参考.这些文件是由某种WEB IDE生成的吗?不幸的是,我没有机会获得有关这个wep页面是如何开发的信息.
这是一个用Java编码的Web项目,使用GWT项目工具编译为JS .
GWT编译器完成了手工编写JS时需要手动执行的大量工作,以及在普通JS项目中几乎不可能执行的其他一些任务:混淆,压缩,死代码删除,每个浏览器的不同优化,重命名脚本,代码拆分等
你的应用程序中有什么是这个编译的结果:
首先,您应该拥有一个唯一的index.html文件,因为GWT用于生成RIA(富Internet应用程序),也称为SPI(单页面接口).
唯一的html文件应该引用一个名为的javascript文件application_name.nocache.js.注意.nocache.部分,这意味着Web服务器应该设置适当的标头,因为代理服务器和浏览器不会缓存它.这个文件非常小,因为它只是有代码来识别浏览器并要求下一个javascript文件.
第一个脚本知道哪个NNNN.cache.js必须加载每个浏览器.NNNN前缀是在编译应用程序时生成的唯一编号,并且每个浏览器都是不同的.GWT支持6种不同的浏览器平台,所以通常你会有6个这样的文件.注意.cache.名称的一部分,意味着这些文件可以永久缓存.它们是大文件,因为它具有应用程序的所有代码.
因此,您的应用程序的正常工作流程是浏览器要求index.html可以缓存的文件.此文件具有脚本标记,用于获取applicaton.nocache.js应始终向服务器请求的小型启动脚本.它只包含用于加载浏览器最新排列的代码,该代码NNNN.cache.js将永久保存在您的浏览器中.
这个命名约定的目标是,下次用户访问应用程序时,它将在缓存index.html和NNNN.cache.js文件中,只询问application.nocache.js哪个非常小.它保证用户始终加载最新版本的应用程序,浏览器只会在应用程序代码下载,代理或缓存设备在发布新版本时不会破坏您的应用程序等.
说,由于大的混淆,几乎不可能弄清楚代码检查javascript的东西是什么.您需要原始的.java文件来理解代码或进行修改.