使用Flash,Javascript和JSP优化我的Web应用程序

如何解决使用Flash,Javascript和JSP优化我的Web应用程序

|| 我有一个试图加快速度的Web应用程序。看起来像这样:
+------+
|      |
|      |
+------+

+------+
|      |
|      |
+------+

+------+
|      |
|      |
+------+
每个框都是一个包含Flash SWF和一些javascript的iFrame。 SWF下载用于显示信息的第三方SWF。我发现该webapp的加载时间为:
LoadTime = (4 seconds) * numberOfBoxes + (3 seconds) 
当我直接将第三方swf嵌入(没有我们的swf或javascript)时,加载时间为:
LoadTime = (1 second) * numberOfBoxes + (2.5 seconds)
我试图找到多余的3秒在哪里使用,以便加快我们的Web应用程序的速度。我认为候选人是: 服务器端处理(jsp) 下载 Java脚本 闪 其他? 下载 以下是从萤火虫下载的图像。我用文件类型替换了文件名。第一次下载后,所有下载都不会花费很长时间。 但是,一个景点标有红色。红色区域是在加载
My SWF
和加载两个gif文件以及followed4ѭ之后的3秒间隔。我认为此暂停是由客户端上的处理引起的(这是真的吗?)。 注意:图中的红色条形图不属于图表。我添加了它们以突出显示.net面板上什么也没有发生的空白。 我认为我可以从中得出结论,我有一个客户端处理问题,这意味着Flash或Javascript。问题1:这是正确的吗? 编辑:我加起来的总非并行下载时间: 如果有1个iframe,则下载时间为1.87秒 如果有2个iframe,则下载时间为2.29秒 如果有5个iframe,则下载时间为8.57秒 如果有10个iframe,则下载时间为10.62秒 如果有21个iframe,则下载时间为17.20秒 Java脚本 我在萤火虫中使用了探查器来探查javascript。当页面上有四个组件时,以下是结果: 这意味着javascript的运行时间约为.25秒/图表。这对我来说似乎很合理。 问题2:我是否正确阅读了这些结果? 剩下的时间约为3.5秒/图表。 闪 我在AS3代码中插入了一些跟踪语句。我们正在听一个叫做“完成加载”的事件。我在第一个initialize方法和\“ done loading \”方法中添加了跟踪。在这两个跟踪语句之间,闪存仅消耗0.2秒/图。 问题3:是否有更好的配置Flash的方法?可能是闪存加载或诸如此类的东西占用了额外的时间吗? 其他 我不确定是否还有其他事情: 服务器端处理(jsp) 下载 Java脚本 闪 问题4:我是否缺少某些东西,可能会浪费时间? 下一步 我不确定下一步应该怎么做。我知道某事大约需要花费1.5-3秒/图,但是我无法弄清楚那是什么。我怀疑这与我的瑞士法郎有关。 问题5:我应该如何找到错过的时间? 更新:时间摘要 我为可能花费时间的每件事绘制了所有时间的图表。 X轴是正在使用的图表数量。 Y轴是加载所有图表所需的时间。 最后一张图可能是最重要的图。蓝点表示总加载时间(使用秒表测量)。红点是我已经考虑的时间(JavaScript,下载时间和刷新时间)。 更新:浏览器大战 我的目标是IE和Firefox(尽管如果其他浏览器可以工作,这是一个不错的选择)。到目前为止提供的所有结果均与运行firebug的Firefox有关。只是为了好玩,我想我会尝试在其他浏览器中使用。我不认为这使我更接近解决方案,但有趣的是看到IE吸收了多少。 注意:在运行Firefox的测试之前,我清除了cookie和缓存。我没有针对IE或Chrome浏览器执行此操作 更新:闪存加载 尽管我的代码试图将慢速代码夹在中间,但我一直在撒一些“ 5”语句。 (结果被推送到Firebug控制台)。 我注意到对我来说似乎很可疑的一件事是,我的上一个JavaScript日志被打印与我的第一个Flash日志被打印之间存在2.5秒的间隔。
17:08:29.973 - Javascript code
Time difference: 2510 ms
17:08:32.483 - Flash- myComponent.init()
闪存是否需要为每个瑞士法郎设置虚拟机?它会在客户端上编译动作脚本吗? 在我
<embed>
swf和我的main9ѭ中的
creationComplete
事件之间会发生什么?     

解决方法

只是一些想法: 您能否消除中间人,在这种情况下,消除第三方SWF? 第三方瑞士法郎在哪里?如果在远程服务器上,则只需下载一次,然后将其与其他文件一起放在本地服务器上。这样可以减少下载时间。 您可以使用Flash反编译器之类的工具反编译第三方swf的代码,然后将代码直接放入您的swf吗? (这可能违反了规则) 如果您不将内容放在iframe中,而只是将它们放在div中会怎样?     ,        另一种选择-尝试禁用Firebug。时间改变了吗? 也可以在chrome中尝试相同的方法-使用和不使用开发工具。 要了解这个jsp是从swf调用还是只是从swf调用,可以执行以下操作: 而不是您的普通瑞士法郎,只提供模拟而无需任何调用-只是空 也代替框架中的js提供空文件 部分执行此操作并检查差异。 还尝试分析所有发生的newtwork事件。可能是您的SWF在第3方中调用了某些方法,然后又调用了一些远程方法。在这里,我认为我们无法改善这一点。只有第3方中的方法可以某种方式被缓存。因此,在您的个人资料中,我们仅看到文件加载-我们看不到其他任何请求-ajax或类似的内容。     ,        根据我的理解,嫌疑犯有三种可能性。 Firebug分析器。尝试使用其他浏览器,看看需要多少时间。 红色组件可能要花一些时间才能加载其他组件。 SWF文件通过服务器创建与其他应用程序的连接,而不是直接连接。     ,        iframe是否来自服务器的HTML响应?还是通过JavaScript将iframe动态添加到DOM? 等待DOM准备就绪,然后在页面加载后将iframe插入DOM中,将会获得更好的性能。 我认为问题在于,当本地SWF下载第3方SWF时,Flash阻止了脚本执行。您可能需要弄清楚如何使用ActionScript对第3方SWF进行并发,非阻塞,异步下载。     ,        我创建了一个helloWorld SWF,并将其嵌入到网页中。 在我测试过的浏览器上,swf加载需要很长时间。当页面上只有一个swf时,这并不明显(〜3秒的加载时间),但是,当页面上有10 swfs时,会出现明显的暂停(〜3秒/图* 10个图表= 30秒)。 以下是我测试过的浏览器: IE 7-非常慢。加载16个“ Hello World”应用程序大约需要37秒 IE 8-似乎大都可以。仅测试了一段时间 Firefox 3.6.17-非常慢。像IE 7一样慢 Chrome 12.0.742.91-快速 我在另一个问题中发布了hello world应用程序。如果有人知道如何加快非常简单的瑞士法郎的加载速度,则可以在这里回答: Flash:同一页面上有许多相同的SWF     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-