2016-07-25 8 views
1

角度アプリケーションで次の問題があります。 - 最初のページはフォームと検索リストを含む検索ページです。検索結果はページ番号、次の10件の結果を表示するボタンが表示されます。 - 結果をクリックすると、要素に関する詳細情報(古典的な検索動作)が表示されます。角度:要素を選択した後で検索リストに戻る

私の問題は次のとおりです。要素ページから、ブラウザの「戻る」ボタンをクリックすると、ユーザーは検索ページに移動しますが、検索は失われます。

フォームをサービスに格納するために、キャッシュを実装しました。この方法で、自動的に検索を再開できます。しかし、この場合、スクロールが失われ、最初の10件の結果しか表示されません(ページネーションが失われます)。

私が見るこの唯一の解決策は、「もっと見る」ボタンがクリックされるたびに履歴にエントリを追加することですが、ウィンドウのスクロールレベルのどこかに保存する必要もあります。私はこの解決策が非常に複雑で迷惑で、美しくはないことを発見しました。

質問があります:それを行うための一般的で簡単な方法はありますか?

これは、私が同じものを持っているアルバムを選んだとき、これはAJAX /角型アプリケーションの通常の問題だと思います。

答えて

0

これはurl paramsで管理する必要があります。アプリケーションルーターは、アプリケーション状態を決定する必要があります。サーバー側の検索結果を管理する際に、クライアント側の検索結果を管理する必要があります。

例:メールで検索結果を共有するとどうなりますか? http://myapp.com/search?page=1&...

あなたが探しているものをブラウザのhistory.backのBTNが正確に行い、このようにあなたのアプリケーションの構造化:すべてがアプリケーションの状態がURLに保管する必要がありますについてなぜ

はこれがあります。

+0

フィードバックをいただきありがとうございます。これは本当に便利です。このようなパラメータの実装を開始しました。しかし、なぜajaxアプリケーションでブラウザのキャッシュを使用できないのか考えていますか?たとえば、JSFアプリケーションでは、履歴に戻るときに、ローカルキャッシュを使用する新しいリクエストはありません(cf:http://stackoverflow.com/questions/15493276/browser-back-button-navigation) – Rolintocour

+0

Java Server Facesを知っているわけではありませんが...ブラウザのキャッシュはサーバーやフレームワークではなく、ブラウザに依存しています。常に使用されます。** HTTP ETag **に応じて多くのリクエストがスキップされます。あなたのアプリケーションはそれを行うために最適化されていません。開発者ツールを開くと、ネットワークパネルに、リソースのロード方法と状態コードが表示されます:304は通常、リソースが変更されていないことを意味し、ローカルバージョンで使用できます。クライアントキャッシュは、HTML5アプリケーションキャッシュとサービスワーカーを使用して最適化する必要があります。 – Hitmands

関連する問題