0

我发现这个问题很难在标题中简短地改写,但这就是发生的事情:

例如,一个页面 (domain.com/pages) 显示了一个表,其中包含来自数据库的行,并且我为每一行提供了一个“删除”按钮。例如,当 ID 为 5 的行被删除时,此按钮将重定向到 (domain.com/pages/delete/5)。加载页面时,它识别出需要删除第 5 行,所以它这样做了。之后,它会继续加载,就像请求了 (domain.com/pages) 一样。所以现在表格再次显示,行 ID 5 已删除,地址栏中的 URL 为 (domain.com/pages/delete/5)。刷新时它会重新加载(domain.com/pages/delete/5),但我希望它重新加载(domain.com/pages)。

简而言之:

  • (domain.com/pages) -> 显示表
  • (domain.com/pages/delete/[id]) -> 从表中删除 [id] -> 显示表

我不想在第二个链接之后进行重定向,因为我想最大限度地减少重定向并保持网站速度较高。这可以通过 AJAX 调用来解决,但这可能会使事情变得不必要地复杂化。我是否错过了一种简单的方法来使这个动作调用 URL 只是一个计时器(即不通过刷新(意外地)调用)?

4

1 回答 1

3

您可以使用 History API 来实现这一点:

if( history.replaceState) history.replaceState(null,document.title,"/pages");

但是,如果您对性能感兴趣,请记住,每次删除一行时,您都必须重新加载整个表。相反,您应该使用 AJAX 请求服务器删除该行,然后使用.removeChild()从表中删除相应的行。

于 2012-12-28T15:54:01.127 回答