我正在尝试在页面上显示服务器响应时间,类似于Google的搜索时间,例如“大约1.3秒内加载的页面”等。
实现这一目标的最佳方法是什么?我目前有一个MVC框架设置,我最初的方法是将初始时间存储在控制器中,并将其作为模型传递到视图中,并且可以查看计算经过的时间。
我觉得必须有一个更好的方法,对于所有请求,上下文可能已经记录了信息,无论是请求开始时间还是已用时间。
有人可以验证我原来的想法是否正确吗?还是存在已经实施的解决方案?
谢谢,
杰森
答案 0 :(得分:3)
您可以使用servlet过滤器将开始时间存储在每个请求的请求属性中(或至少针对页面的每个请求),并计算视图执行结束时的已用时间。
如果您使用Tiles或SiteMesh等模板引擎,则会在一个地方调用此经过时间计算:页面模板。
答案 1 :(得分:3)
如果你一直等到控制器,你可能会错过很多“加载时间”。您希望使用Filter尽可能在过程的早期和晚期为请求计时。 Java EE教程有more details on writing Filters。还有另一个SO答案正是如此:
In spring MVC, where to start and end counter to test for speed execution time?