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]を削除->テーブルを表示

リダイレクトを最小限に抑え、サイトの速度を高く保ちたいので、2番目のリンクの後にリダイレクトしたくありません。これはAJAX呼び出しで修正できますが、不必要に複雑になる可能性があります。このアクション呼び出しURLを1つのタイマー(つまり、更新によって(誤って)呼び出されない)にする簡単な方法を見逃していませんか?

4

1 に答える 1

3

これは、HistoryAPIを使用して実現できる可能性があります。

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

ただし、パフォーマンスに関心がある場合は、行が削除されるたびに、テーブル全体をリロードする必要があることに注意してください。代わりに、AJAXを使用してサーバーに行の削除を要求してから、を使用.removeChild()して対応する行をテーブルから削除する必要があります。

于 2012-12-28T15:54:01.127 に答える