9

ブラウザの戻るボタンを聞いて前のページをロードするためのスクリプトを作成しています。私はjqueryとjavascript(phpの人)に不慣れです。これを再発明する前に、私はWeb全体でライブラリを検索しました。しかし、ajaxリンクで多くのパラメーターを使用しているため、それらのライブラリーを使用することはできません。私はそのような複雑なシステムの使い方がわからないので、私の間違いを認めます。ですから、次のようなシステムを作っていくのではないかと考えています。

// get the contents of a particular div and save as an object/associative array 
// { hash : pageNumber, html : content}
function save_history(div){
    var content = $(div).html();
    // increment the page number and add hash tags to the URL
}   

// Listen to the browser hash value change
$(window).bind('hashchange', function () {
    hash = window.location.hash;
    if(hashValue){
        load_history(hashValue);
    }   
}); 

// Load data from history
function load_history(id){
    // fetch the content based on the hashvalue
    $(div).html(content);
}

これを使用することに問題はありますか?多くのコンテンツがオブジェクトとして保存されている場合、これによりページが応答しなくなったり、ブラウザがクラッシュしたりしますか?そのような問題が発生した場合、私は時間を無駄にしたくありません。

4

3 に答える 3

2

pjaxはあなたが探しているライブラリのようです:https ://github.com/defunkt/jquery-pjax

于 2012-09-15T22:21:55.010 に答える
0

HTML5 を使用する予定がある場合は、History API を参照してください。これにより、AJAX Web Apps でネイティブ ブラウザー コントロールを使用できるようになります。見てください!

http://diveintohtml5.info/history.html

于 2012-09-10T21:53:26.060 に答える
0

History API がその方法です。ページが多くのパラメーターで作成されているかどうかは関係ありません。URL パラメーターを介して追跡されている場合は、履歴を更新すると (URL が更新されます)、ページの状態が復元されます。URL パラメーターを使用していない場合 (つまり、POST またはカスタム ソリューションを使用している場合)、 history.pushState() は 3 つのパラメーターを受け入れます。タイトル、次に「新しい」ページの URL。次に、ヒットバックすると、すべて同じパラメーターを返す history.popState() を実行し、それらのパラメーターを解析して、ページの「前の」状態を復元できます。

真剣に、howderek がより密接にリンクされている記事を読むか、ヒストリー API の使用に関する他の多くのチュートリアルへのリンクがあるこの他の質問をチェックしてください: HTML5 ヒストリー API を使用するための優れたチュートリアル (Pushstate?)

于 2012-09-14T16:15:33.363 に答える