1

私の質問は単純ですが、探しているものに合った答えを見つけることができませんでした。基本的に私の場合は次のとおりです。

フォームを含む HTML ページがあります。jQuery と AJAX を使用してフォームを送信し、JavaScript コードを使用して div の HTML コンテンツを変更します。F5 / Ctrl-R / Cmd-R を押しながらページをリロードせずに、これらすべてを実行します。

HTML コンテンツを変更する .js コードの例を次に示します。

$.ajax({
    type: "POST",
    url: "/management/uploadFile",
    dataType: "JSON",
    data: "uploadedFile="+uploadedFile,
    cache: false,
    success: 
    function(data){
        $('#mydiv').html(change_html(data));
    },
});

function change_html(data)
{
    var html;

    html += '<div id="mydiv">';
    html += 'Hello World !<br/>';
    html += '</div>';
    return html;
}

実際、ページを手動でリロードすると、「動的な」HTML コンテンツが保持されず、フォームが戻ってきます。

私はウェブ開発にまったく慣れていないので、これについて何かを見逃したと確信しています。誰かが私を案内してくれたり、私のケースについてのヒントを教えてくれませんか?

ありがとうございました !

4

4 に答える 4

1

簡単に言うと、更新時にDOMの状態を永続化することはできません。ただし、修正するためにいくつかのことを行うことができます。

  1. サーバーに永続化されたデータを取得して動的ページを再描画するページの読み込み時にAJAXメソッドを呼び出すことを検討してください。
  2. クライアントブラウザのセッションにデータを保存し、リロード時にそのデータを取得して動的ページを再描画します。これは、セッションストレージに永続化する多数のツールを使用して実現できます。
于 2012-10-02T20:50:13.973 に答える
0

とにかくajaxを使用しているので、データをphpセッションにダンプして呼び出したり、必要に応じてajaxで再フォーマットしたりできる可能性はありますか?

于 2012-10-02T20:48:42.540 に答える
0

私が過去にこの問題を解決した方法は、backbone.js モデルを使用し、そのデータをそこに保存することでした。

于 2012-10-02T20:46:08.420 に答える
0

HTML は callback を使用して動的に生成されるchange_htmlため、ページのリロード中に保持することはできません。それが、十分に動的であることの性質です。

于 2012-10-02T20:47:18.493 に答える