使用ajax调用刷新jsp页上的div,而不需要响应

vuktfyat  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(298)

我知道使用ajax调用来刷新 div 使用收到的响应,但在我的情况下,我没有响应,但仍然希望刷新div。
我的应用程序有一个名为“cart”的表,当我单击该表上的delete按钮时,它会从cart中删除一个项目。我通过向javaservlet发送ajax调用来删除该项,该servlet更新arraylist中的cart。由于我只删除一个对象,我没有响应,但仍然想用删除的项目更新购物车。
我试过以下方法:
更新cart数组后,使用servlet重定向到同一页。这将导致页面重新加载。 request.getRequestDispatcher(target).forward(request, response); 其中目标是index.jspx
使用 $(..).load('index.jspx') 尝试刷新特定的 div ,但这会将 index.jspx 进入微小的 div 和购物车的table。

xoefb8l8

xoefb8l81#

ajax请求(异步javascript和xml)被发送到服务器。您可以为ajax请求定义回调,即javascript function 这将在请求结束后执行。你也可以用承诺来达到这个目的。总之,一旦您知道如何在请求完成后执行函数,您就需要决定是否需要来自服务器的信息。
如果您满足于没有从服务器收到任何有意义的答案,并且可以假设删除成功,那么您只需记住按下了哪个删除按钮,找到包含它的行,然后 remove() 是的。在这种情况下,您不需要向服务器发送进一步的请求。
否则,如果您需要从服务器获取更多信息(因为可能已经创建/修改/删除了新项),那么只需更改服务器端,以便将关于这些项的json发送回客户端并刷新那里的表。

lp0sw83n

lp0sw83n2#

你其实不必再重新调整整个事情的方向。不用重定向,只需使用 response.getWriter().write(<Your updated Array>); 内部 doPost() 或者 doGet() 取决于你正在使用的。
这将把更新后的数组发送到ajax代码中,而不是刷新整个页面。

相关问题