我创建了一个具有数据库连接性的 jsp 页面。这个页面有html内容和java编程。我的数据库包含一个ip地址列表。
我的 java 代码获取每个 ip 地址并检查它当前是否在网络上处于活动状态。所以我的jsp页面只有在这个java代码对所有ip地址执行检查后才会加载。这就是我的页面加载得很晚的原因。
有什么补救措施可以让我的页面加载得更快吗?
您可以将 db 中的所有 ip 地址加载到 ArrayList 中,也可以将所有活动的 ips 加载到另一个 ArrayList 中并比较这两个数组。这应该快得多。
将 JSP 与 Java 代码分离是一种最佳实践,但我将在这里描述的更普遍的想法是将数据的检索和更新与数据的呈现分离,这是一个需要解决的常见问题。
您需要做的是将进行所有网络调用的 java 代码与正在呈现的 JSP 分开。您可以让网络调用全部在一个线程中运行,每分钟或每几分钟检查一次每个地址,并使用状态更新每个地址的数据库记录。然后当调用 JSP 时,JSP 只是从数据库中获取最新数据并显示它(这就是 JSP 的使用方式)。
现在,有很多方法可以做到这一点。如果我自己做,我会使用 Spring Framework 并将网络调用代码放在一个用@Scheduled 注解的方法中,并且可以通过该方法完成网络调用和数据库更新。有关如何使用 Spring 的详细信息超出了此答案的范围,但希望这能让您了解整体方法,以及您可以开始研究的一种技术。
- 你应该只加载带有 IP 列表的 JSP 页面,加载后,你可以使用 AJAX 请求获取 IP 地址状态。
- 前面提到的缓存状态的想法很棒。
-您还可以改进界面(分页、延迟加载列表等)以减少检查 IP 地址的数量。