我知道使用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。
2条答案
按热度按时间xoefb8l81#
ajax请求(异步javascript和xml)被发送到服务器。您可以为ajax请求定义回调,即javascript
function
这将在请求结束后执行。你也可以用承诺来达到这个目的。总之,一旦您知道如何在请求完成后执行函数,您就需要决定是否需要来自服务器的信息。如果您满足于没有从服务器收到任何有意义的答案,并且可以假设删除成功,那么您只需记住按下了哪个删除按钮,找到包含它的行,然后
remove()
是的。在这种情况下,您不需要向服务器发送进一步的请求。否则,如果您需要从服务器获取更多信息(因为可能已经创建/修改/删除了新项),那么只需更改服务器端,以便将关于这些项的json发送回客户端并刷新那里的表。
lp0sw83n2#
你其实不必再重新调整整个事情的方向。不用重定向,只需使用
response.getWriter().write(<Your updated Array>);
内部doPost()
或者doGet()
取决于你正在使用的。这将把更新后的数组发送到ajax代码中,而不是刷新整个页面。