0

AJAX/jQueryを使用してPHPスクリプトからデータをロードするための代替方法を研究していますが、A)質問を十分に絞り込むか、B)ドキュメントを見つけるのに問題があります。

現在、私はajaxで通常のポストクラスを使用しています:

$.ajax({
  url: 'script.php',
  data: {
          data1: $('#input1').val(),
          data2: $('#input2').val()
        },
  dataType: 'json',
  success: function(data){
             $.each(data, function (key, value){
               $('#data-cont').append(value);
             });
           }
 })

jsonscript.phpデータを返します。

さて、私$('#data-cont').append(value);が通常持っているのは、HTMLマークアップに沿って応答データを挿入しようとする巨大な混乱です。それは非常に醜く、整理して構築するのは本当に面倒です。

調査を行っているときにdataType: 'html'、要素 ID でデータの html を解析する を見てきました。個人的には、jquery/javascript よりも PHP で HTML を作成する方がはるかに簡単でクリーンだと思います。PHP では、ifステートメントなどで別の構文を使用できるため、整理と開発が容易な、よりクリーンなコードとマークアップを生成できます。

それで、私の実際の質問に。

データを HTML マークアップにコンパイルするには、どちらが標準/より好ましいスクリプト応答であるか、HTML または JSON ビルド マークアップを jQuery/js で使用しますか?

4

1 に答える 1

1

正直なところ、その応答でクライアント側で何をする必要があるかによって異なります。

単に表示する必要がある場合は、先に進んで html サーバー側を生成し、適切と思われる dom に追加するだけです。

json を返したいのは、そのデータに基づいてクライアント側で決定を下す必要がある場合です。

非常に単純な例として、データベースからのクライアントのリストを含む json 構造が返され、この json には各クライアントのプライマリ キーと電話番号も含まれます。これで、その json データを保持し、表示用のリストの作成を処理し、onclick メソッドを各リスト項目にバインドするオブジェクトを作成できます。ユーザーがリスト項目をクリックすると、json データ構造の同じインデックスに対応するリスト項目のインデックスを簡単に返すことができるようになり、そのリスト項目に関する詳細データの html 属性を解析する必要がなくなりました。 /client を使用すると、別のサーバー リクエストや JavaScript の混乱なしに、json データ構造に直接アクセスできます。onclick で、クライアントの主キーを、連絡先などを格納する別の配列に追加できます。

それを行うための「適切な」または「最良の」方法ではなく、実際には目の前のタスクがすべてです。

しかし、言及する価値があるのは、なぜサーバー上でクライアント側で何ができるのですか? コミュニケーションを軽くすることで、リソースを節約できます。JSON は非常に軽量です。

もう 1 つの注意点として、SEO では、ほとんどの場合、すべての HTML サーバーサイドを構築する必要があります。

于 2013-09-20T15:51:23.177 に答える