一个页面响应不能结束的问题

本文介绍了解决老系统中页面加载不完全的问题,页面跳转成功后进度条一直闪烁,原因是某个Flash文件缺失导致页面等待加载。通过添加正确的Flash文件解决了该问题。

整理老系统访问某一页面时,页面跳转成功,但是进度条一直在闪烁——貌似还有东西未加载完成,但是页面一直在等待,过了N久IE崩溃。

在访问此页面时,resin控制台上有如下警告信息:[org.apache.struts2.util.SubsetIteratorFilter]-[WARN] Source is null returning empty set.

 

最后发现页面有一个flash无法显示,页面好像一直在等待下载此flash,而这个FLASH文件却不存在。下载了一个flash文件更改文件名,存放到项目相应位置,问题解决。

### 微博页面跳转在 Perfetto 工具中的响应结束节点分析 Perfetto 是一种强大的性能追踪工具,能够帮助开发者深入理解应用程序的行为以及系统资源的使用情况。对于微博页面跳转这一场景,在 Perfetto 中找到响应结束的具体节点需要关注以下几个方面: #### 1. 页面加载的关键事件 在 Perfetto 的跟踪数据中,通常会记录一系列与页面加载相关的事件。这些事件包括但不限于 `NavigationStart`、`DOMContentLoaded` 和 `LoadEventEnd` 等[^3]。其中,`LoadEventEnd` 表示页面的主要内容已经完成加载并触发了 onload 事件回调。 对于微博这样的复杂应用,其页面跳转可能会涉及多个子资源的异步加载(如图片、脚本文件)。因此,除了核心的 HTML 文档外,还需要特别注意网络请求队列中的最后一个关键资源加载完毕的时间点。 #### 2. 渲染流水线中的重要标志 除了传统的 DOMContentLoaded 或 LoadEventEnd 外,现代 Web 应用还依赖 GPU 渲染管线来呈现最终视觉效果。这意味着即使 JavaScript 主线程上的任务已完成执行,但如果渲染尚未提交到屏幕上,则用户体验仍然未达到真正的“响应结束”。 在这种情况下,应该查找名为 **Frame Rendering Pipeline** 的轨迹片段,并观察第一个完整的帧绘制完成后的时间戳作为实际感知终点[^4]。 #### 3. 使用标记 (Trace Markers) 某些框架或者库会在内部插入自定义 trace markers 来辅助调试目的;例如 React Native 可能会有特定名称的方法调用来指示某个操作序列何时终止。如果目标平台采用了类似的机制,则可以直接搜索对应标签字符串从而快速定位确切位置。 以下是基于以上理论的一个 Python 脚本来解析 Perfetto 导出的数据文件(.trace),寻找可能代表 “response end”的时间点: ```python import json def find_response_end(trace_file_path): with open(trace_file_path, 'r') as f: data = json.load(f) response_end_time = None for event in data['traceEvents']: if event.get('name') == 'navigation' and event.get('ph') == 'X': ts = float(event['ts']) / 1000 # Convert from microseconds to milliseconds. dur = int(event.get('dur', 0)) / 1000 potential_end_point = ts + dur if not response_end_time or potential_end_point > response_end_time: response_end_time = potential_end_point return response_end_time if __name__ == "__main__": result = find_response_end('./example.perfetto-trace') print(f'Response End Time: {result} ms.') ``` 此代码假设输入是一个标准格式化的 Perfetto JSON 输出文档,并尝试匹配任何具有导航性质的任务持续期字段(ph='X'),将其视为候选答案之一.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值