java在客户端删除一条数据原页面刷新之后,数据仍然存在的问题

时间:2021-03-07 18:00:32
本人在做java web项目的时候遇到这样一个问题,在jsp页面通过勾选复选按钮的方式删除一行数据原页面刷新之后,被删除的那条数据在数据库中倒是被删除了,但是页面上的那条删除的数据仍然存在,数据库中的数据都已经删除了,同时客户端也看见页面刷新了,重新遍历之后在原页面应该看见数据被删掉了才对,不清楚是什么原因,还请各位了解的朋友给些意见,帮帮忙,互相交流,互相学习,谢谢!

18 个解决方案

#1


删除操作请求后台 action 或者servlet  之后执行删除操作  之后再次查询数据库并返回响应到jsp  

这个流程下来还会数据不刷新的话 考虑connection 连接通道没有关闭导致数据缓存在通道中 之后数据不刷新

#2


感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?

#3


清一下缓存试试把 

#4


第一可以在js中通过操作dom元素将勾选的数据直接删掉。
第二删除之后刷新页面,重新查询数据。

#5


可能是浏览器自动缓存页面的原因,清空一下浏览器缓存试一下。

#7


引用 2 楼 chengxurensheng111 的回复:
感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?

断点调试吧,如果进不了断点,那就是页面被缓存,数据库连接不存在缓存一说,不然连接池是干啥的?
当然我觉得你代码写的有问题的概率也比较大

#8


查询走的是缓存不是数据库吧  

#9


这种问题一般都说缓存、cookie、session造成的,好好找找就知道了

#10




引用 2 楼 chengxurensheng111 的回复:
感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?


Mybatis的话 清空 SQLsession的缓存就好  最好每次执行SQL之后就清理一次    或者直接关闭 SQLsession.close();

#11


贴代码看看,最直接

#12


主要看看你是不是重新发了一个请求后台接口的请求,在浏览器上按F12 选NetWork 查看访问请求  这样可以看到你刷新了页面是否重新请求了后台的接口,还有就是看看请求的返回值是什么,根据这样来分析自己的问题在哪。

#13


感谢大家的帮助,浏览器缓存清了还是不行,这几天回家办点事,家里没有网络,等过几天回去的,我把代码贴上去吧,希望大家能再帮我分析一下,感谢大家!

#14


    删除以后重定向到你的页面。

#15


输出一下service层调用返回的结果试试看

#16


查询结构使用了缓存,delete操作的时候忘记更新缓存了?

#17


应该是缓存的问题吧,查的时候数据存入缓存,删的时候删除数据库中的数据,但缓存还在,二次查询的时候直接走缓存不走数据库。之前我们是在删的时候加了一个清除缓存的设置。

#18


我也觉得应该是缓存的问题。
只是你可否设置一个时间,让它精确到毫秒,然后写个方法通过时间来判断再释放缓存从而删除呢?

#1


删除操作请求后台 action 或者servlet  之后执行删除操作  之后再次查询数据库并返回响应到jsp  

这个流程下来还会数据不刷新的话 考虑connection 连接通道没有关闭导致数据缓存在通道中 之后数据不刷新

#2


感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?

#3


清一下缓存试试把 

#4


第一可以在js中通过操作dom元素将勾选的数据直接删掉。
第二删除之后刷新页面,重新查询数据。

#5


可能是浏览器自动缓存页面的原因,清空一下浏览器缓存试一下。

#6


#7


引用 2 楼 chengxurensheng111 的回复:
感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?

断点调试吧,如果进不了断点,那就是页面被缓存,数据库连接不存在缓存一说,不然连接池是干啥的?
当然我觉得你代码写的有问题的概率也比较大

#8


查询走的是缓存不是数据库吧  

#9


这种问题一般都说缓存、cookie、session造成的,好好找找就知道了

#10




引用 2 楼 chengxurensheng111 的回复:
感谢朋友给的建议!我做的这个项目使用的是SSM框架,删除操作走的是JS,然后通过location跳到jsp页面的,再在jsp页面通过spring容器拿到的service调的业务逻辑,没走后台的控制器,JDBC连数据库操作被封装在底层了看不到,这个问题是像你说的connection 连接通道没有关闭导致数据缓存在通道中吗?那这样的话如何关闭呢?


Mybatis的话 清空 SQLsession的缓存就好  最好每次执行SQL之后就清理一次    或者直接关闭 SQLsession.close();

#11


贴代码看看,最直接

#12


主要看看你是不是重新发了一个请求后台接口的请求,在浏览器上按F12 选NetWork 查看访问请求  这样可以看到你刷新了页面是否重新请求了后台的接口,还有就是看看请求的返回值是什么,根据这样来分析自己的问题在哪。

#13


感谢大家的帮助,浏览器缓存清了还是不行,这几天回家办点事,家里没有网络,等过几天回去的,我把代码贴上去吧,希望大家能再帮我分析一下,感谢大家!

#14


    删除以后重定向到你的页面。

#15


输出一下service层调用返回的结果试试看

#16


查询结构使用了缓存,delete操作的时候忘记更新缓存了?

#17


应该是缓存的问题吧,查的时候数据存入缓存,删的时候删除数据库中的数据,但缓存还在,二次查询的时候直接走缓存不走数据库。之前我们是在删的时候加了一个清除缓存的设置。

#18


我也觉得应该是缓存的问题。
只是你可否设置一个时间,让它精确到毫秒,然后写个方法通过时间来判断再释放缓存从而删除呢?