Web applications 尝试使用Flash、Javascript和JSP加速我的Web应用程序

Web applications 尝试使用Flash、Javascript和JSP加速我的Web应用程序,web-applications,optimization,Web Applications,Optimization,我目前正在使用Flash、Javascript和JSP(在ApacheTomcat上运行)开发一个web应用程序。我正在努力加快速度 使用将应用程序嵌入到另一个页面中。通常我们会将应用程序多次嵌入到一个页面中 iframe中的页面是一个带有一些Javascript和flashswf的JSP。基本结构是: <html> <head> <script src="script1.js"/> ... <s

我目前正在使用Flash、Javascript和JSP(在ApacheTomcat上运行)开发一个web应用程序。我正在努力加快速度

使用
将应用程序嵌入到另一个页面中。通常我们会将应用程序多次嵌入到一个页面中

iframe中的页面是一个带有一些Javascript和flashswf的JSP。基本结构是:

<html>
    <head>
        <script src="script1.js"/>
        ... 
        <script src="script8.js"/>
    </head>
    <body>
        <object>
            <param ... />
            <param ... />
            <param ... />
            <embed src="myFlash.swf" ...>
            </embed>
        </object>
    </body>
</html>
我认为这些是缓慢的候选者:

  • Javascript
  • 闪光
  • 服务器端处理
  • 下载时间
Javascript 我已经使用Firebug来分析Javascript,但是没有函数占用大量的时间,而且总的时间似乎很小。以下是近似结果:

  • 函数A占用25%的时间。其时间(包括嵌套调用)为1.5秒*。这似乎几乎可以忽略不计
  • 功能B、C、D、E所占比例小于10%
  • 还有许多其他功能占用的时间不到总时间的2%
看起来JS很快,而不是应用程序速度慢的原因

*此时间适用于页面上有21个应用程序且总加载时间为85秒的情况

闪光 我不知道如何分析Flash代码。我看到一些主权财富基金的灰色加载条(其中一些跳过灰色滚动条)。我认为这是我的下一步

下载 查看Firebug中的Net选项卡,似乎有一些东西在下载时有点慢。每个JSP都有大约8个与之关联的javascript文件。下载第一个总是有点慢(大约需要一整秒钟)。我不知道这是为什么。我想知道这是否是因为我的Tomcat服务器支持的连接不够

我想到的其他问题有:

  • 它正在为每个jsp请求相同的8个js文件。是否可以将js文件放在主页上,以便只请求一次
  • 我应该增加到Tomcat的连接数吗
  • 由于我正在加载许多应用程序,我希望
    app1
    在下载后开始初始化自身(而不是等待
    app2
    完成下载)。如何查看
    app1
    何时开始运行,并重新下载
服务器端处理 我认为任何服务器端处理都应该通过下载时间来反映。例如,如果其中一个JSP需要很长时间,则很容易看到,因为下载JSP需要很长时间

问题:
  • 判断web应用程序慢的部分的标准方法是什么
  • 最容易加速的部分是什么
  • 我知道有些东西需要多长时间(下载和JS),但我不知道这两者之间有什么关系。JS什么时候开始执行?下载完成时,还是该文件的下载完成时
  • 是否还有其他因素会使我的申请变慢
关于js文件:浏览器一次具有最大数量的并行打开连接。这意味着您应该拥有尽可能少的js文件。我的建议是将文件连接成一个大文件,缩小它,启用gzip压缩,并确保设置了正确的缓存头。既然您正在使用Apache作为服务器端,您可能需要考虑一个工具,它可以完成我提到的所有内容。它很容易使用,我有一个伟大的经验,在使用它work@Dan,我只是把所有的JS文件放在一个文件中。我没有拉拉链,但这没有任何效果。我认为压缩它是不值得的,因为它不需要花费大量的时间来下载,而且它是缓存的,所以理论上用户只需要下载一次。好吧,这可能不是一个js问题。您可以尝试移动页面底部的脚本标记,这样就不会冻结渲染,而且看起来更流畅,但我认为这也不会有多大帮助。通过在js文件顶部添加
console.profile()
,在底部添加
console.profileEnd()
,可以获得更准确的js配置文件。但我认为问题出在其他地方(可能是flash,但最有可能是服务器端),可以考虑在服务器上使用一些缓存机制。我怀疑iFrame之间可能有很多共同点,您可以通过在会话上缓存它来节省一些时间。关于js文件:浏览器一次有最多的并行打开连接数。这意味着您应该拥有尽可能少的js文件。我的建议是将文件连接成一个大文件,缩小它,启用gzip压缩,并确保设置了正确的缓存头。既然您正在使用Apache作为服务器端,您可能需要考虑一个工具,它可以完成我提到的所有内容。它很容易使用,我有一个伟大的经验,在使用它work@Dan,我只是把所有的JS文件放在一个文件中。我没有拉拉链,但这没有任何效果。我认为压缩它是不值得的,因为它不需要花费大量的时间来下载,而且它是缓存的,所以理论上用户只需要下载一次。好吧,这可能不是一个js问题。您可以尝试移动页面底部的脚本标记,这样就不会冻结渲染,而且看起来更流畅,但我认为这也不会有多大帮助。通过在js文件顶部添加
console.profile()
,在底部添加
console.profileEnd()
,可以获得更准确的js配置文件。但我认为问题出在其他地方(可能是flash,但最有可能是服务器端),可以考虑在服务器上使用一些缓存机制。我怀疑iFrame之间可能有很多共同之处,您可以通过在会话中缓存它来节省一些时间。
LoadingTime = (4 seconds)*NumberApplications + (3 seconds)