Thymeleaf数据渲染延迟导致的问题

  • Post author:
  • Post category:其他


最近在写后台管理系统时,遇到了一个很诡异的Bug,时而有时而没有。在修改页面点击修改按钮,按道理应该正常运行,但是却404了,而且这个问题时间歇性的,有时候会出现404,有时候就会正常运行。一切的罪魁祸首都是Thymeleaf的缓存机制。


以下举例:

HTML中部分代码:

<a th:href="@{/order-list(pageNum=${pageNum})}">
    修改
</a>

正常运行时的请求路径:

localhost:8080/order-list?pageNum=XXX

运行出错时:

localhost:8080/XXXXXXXXXXX    // 只要知道不是正确的请求路径即可


结论:

从代码层面来看,是并没有出错的,有正常运行的情况也证明了代码并没有问题,那么又是为什么会出现404的情况呢。

其实是因为,当跳转到修改页面的时候,其实Thymeleaf其实并没有完全渲染完数据,我们就去点击了这个超链接,那么此时就不会跳转到我们想要的请求路径。这是由于Thymeleaf的缓存机制导致的。


解决方案:

1、把超链接跳转,改成js的形式,这样就不会出问题

2、当然你也可以稍微等一下,再去点击目标超链接哈哈哈(非常不建议)



版权声明:本文为m0_51512780原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。