如何解决有没有办法用 Apache Tomcat 9.0.48 + 减少 requirejs 的请求下载时间?
我有一个通过在 Apache Tomcat 服务器 (9.0.48) 上运行的 requirejs 加载模块的应用程序。从 tomcat 9.0.46 升级到 9.0.48 时,我发现页面加载不一致,错误为 Load timeout for modules: ...
。
当模块加载失败时,较大模块(jquery、wysihtml5)的内容下载时间从约 100 毫秒变为 1 分钟。总体而言,整个页面加载时间从 ~500ms 增加到 ~600ms。我没有观察到使用 tomcat-coyote
从 tomcat 9.0.46 下载时间超过 200 毫秒;似乎这是 9.0.48 tomcat-coyote
库的新功能。
有没有办法加快模块下载时间?
配置
requirejs 配置
requirejs 加载为 data-main:
<script type="text/javascript" src="/configurator/assets/js/lib/utils/require-2.3.6.min.js" data-main="/configurator/assets/js/main"></script>
requirejs.config({
"paths" : {
"jquery" : "lib/jquery/jquery-1.8.3","jquery-ui" : "lib/jquery/jquery-ui-1.10.3.custom.min","fileupload" : "lib/jquery/jquery.fileupload","jquery.iframe" : "lib/jquery/jquery.iframe-transport","jquery.ui.widget" : "lib/jquery/jquery.ui.widget","jquery.ba-hashchange" : "lib/jquery/jquery.ba-hashchange","underscore" : "lib/utils/lodash-1.0.0-rc3.min","wysihtml5" : "lib/xing-wysihtml5/wysihtml5-0.3.0","wysihtml5_parserrules" : "lib/xing-wysihtml5/advanced","bootstrap" : "lib/bootstrap/bootstrap-2.1.0.min","can" : "lib/can/can","configurator" : "app/configurator",},"shim" : {
"jquery": {
"deps" : [ ],"exports" : "jQuery"
}
"underscore" : {
"deps" : [ ],"exports" : "_"
},"less" : {
"deps" : [ ],"exports" : "less"
},"fileupload" : {
"deps" : [ "jquery" ],"exports" : "fileupload"
},"bootstrap" : {
"deps" : [ "jquery-ui" ],"exports" : "bootstrap"
},"jquery-ui" : {
"deps" : [ "jquery" ],"exports" : "jquery-ui"
},"jquery.iframe" : {
"deps" : [ "jquery" ],"exports" : "jquery.iframe"
},"jquery.ui.widget" : {
"deps" : [ "jquery" ],"exports" : "jquery.ui.widget"
}
},"modules" : [ {
"name" : "main"
} ],"appDir" : ".","baseUrl" : "../../../configurator/assets/js","waitSeconds": "0"
});
require([
'jquery','can','underscore','configurator','bootstrap'
],function($,can,_,Configurator) {
...
});
});
Tomcat 连接器配置
<Connector port="8443" address="0.0.0.0" SSLEnabled="true"
maxHttpHeaderSize="8192" emptySessionPath="false"
maxKeepAliveRequests="-1"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLSv1.2" sslEnabledProtocols="TLSv1.2"
keystoreFile="..." keystorePass="..." keystoreType="..."
useBodyEncodingForURI="true" URIEncoding="UTF-8"
ciphers="..." />
解决方法
此问题似乎已在 Tomcat 9.0.5 中修复。相关错误:https://bz.apache.org/bugzilla/show_bug.cgi?id=65448
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。