检查网络瀑布图后发现是cc.js太大导致的。 2.8M文件的加载时间接近二十秒。
既然已经确定问题是由于js文件太大造成的,那么解决办法肯定是减小或者压缩js大小。
1:首先考虑如何减少
cc.js包含很多模块,可能有一些模块我们没有使用过。 在这种情况下,我们可以选择删除这些模块来减少一些大小。 当然,这种方法效果不是很好。
2:使用压缩
因为我使用tomcat部署程序,所以我首先想到的是使用GZIP进行压缩。
由于GZIP默认没有启用,那么如何启用呢?
然后需要修改server.xml文件
找到连接器节点。 请注意,这是您配置端口号的端口号。 红色标记的是新添加的。
连接超时=“20000”
重定向端口=“8443”
压缩=“开”
压缩最小尺寸=“2048”
noCompressionUserAgents="哥斯拉、茶花女"
compressableMimeType =“文本/ css,文本/ javascript,应用程序/ javascript”
useSendfile="false"/>
解释:
#设置为on即可启用
压缩=“开”
# 压缩的最小值(单位Bcocos-js 异步 个别加载失败,默认2048,默认2k)
压缩最小尺寸=“2048”
# 不需要压缩的浏览器
noCompressionUserAgents="哥斯拉、茶花女"
# 需要压缩的文件类型(多个类型用逗号分隔)(注:如果是JS,请使用text/javascript或application/javascript。如果不确定,可以在浏览器的资源加载瀑布流中查看图表)
compressableMimeType="text/html,text/xml"
#默认情况下游戏素材下载 免费,sendfile的优先级高于压缩,因此当文件大小大于48KB时,会放弃压缩。 因此像素游戏素材,如果您的文件大于 48KB 但仍需要使用压缩cocos-js 异步 个别加载失败,请设置此项。
使用发送文件=“假”
设置后,js文件的大小被压缩到了685KM,可见压缩力还是相当强的。 但四秒的加载时间还是太长了。 想想是否还有其他方法可以进一步压缩。
当然,解决方案肯定不止一种。 如果您还有其他好的想法,欢迎在评论区指导。