2012-04-27 19 views
-2

私は面白い質問があったとき、私のサイトのバックエンドから情報を取得するAJAXリクエストを作成することを含む多くのことをやってきました。 PHPでhtmlスタイリングを行い、クライアントに送信する方が良いですか、それともjsonとしてデータを送信してからjavascriptでスタイルする方が良いですか?PHPでのHTMLマークアップとJavaScriptの比較

この質問は私が例をあげるvaugeの一種であるので:私のJavaScriptで

<?php 

$data = array(); 
$data[0] = array("username" => "Supericy", "content" => "just a sample message 1"); 
$data[1] = array("username" => "Supericy", "content" => "just a sample message 2"); 
$data[2] = array("username" => "Supericy", "content" => "just a sample message 3"); 
// etc... 


// now this is the choice: 
if ($json) 
{ 
    return json_encode($data); 
} 
else 
{ 

    // or 
    $returnString = ""; 
    for (...) 
    { 
     $returnString .= '<div class="username">' . $data[i]["username"] . '</div>'; 
     $returnString .= '<div class="content">' . $data[i]["content"] . '</div>'; 
    } 

    return $returnString; 
} 

?> 

そして:

// get the information as raw json 
var data = ajax_request(json = true); 

var author = document.createElement('div'); 
author.className = "author"; 
author.innerHTML = data[i]["username"]; 



var content = document.createElement('div'); 
content.className = "content"; 
content.innerHTML = data[i]["content"]; 

body.appendChild(author); 
body.appendChild(content); 

// -- OR -- 

// get the information as pre-formated html 
var data = ajax_request(json = false); 
body.innerHTML += data; 
+3

"depends"は唯一有益な答えです。 – Hamish

+0

誰かがJavaScriptを無効にしているとどうなりますか? – jprofitt

+1

彼はどのようにしてアヤックスコールをやりますか? –

答えて

2

他のユーザーが述べたように、対象とするユーザーは誰に依存しているかによって大きく異なります。あなたはスタートアップコストを低く抑えようとしており、一般にケーブル/常時インターネット接続を持っているユーザーのために開発しているなら、ボートを何でも浮かべることができます。

しかし、アプリケーションを設計していて、それを比較的保守しやすい状態にしたい場合は、おそらくJSONを調べるべきです。 JSONを使用する場合は、JSONオブジェクトのデコードを安全かつ簡単に処理できるように、jQueryなどのjavascriptライブラリを選択することをおすすめします。

実際、AJAXページからHTMLを返すときでも、私はまだJSONオブジェクトにラップします。そのように標準化されているように見えますし、以前のjavascriptコードを簡単に再利用できます。

  • HTMLコードはコードで表示され、検証問題を発見しやすくなるかもしれストレートPHPから

    HTMLを送信:

    は、ここではいくつかの基本的なトレードオフです。

  • メンテナンスが簡単です。 (キーワードMAY。)複雑なhtmlを生成している場合は、PHPで構築する方が簡単かもしれません。

PHPにJSONを送信すると、Javascriptがブラウザに送信

  • 少ないデータをHTMLに変換させます。これは、接続が限られており、帯域幅の使用量を支払うモバイルユーザーにとって大きなプラスです。
  • 一般にメンテナンス可能です。
  • クライアントコンピュータがサーバーではなく処理を実行できるようにします(サーバー負荷を軽減します)。
  • 最近、サーバとの通信のための標準的なフォーマットに見えます。 Google Maps APIでもJSONを使用して開発者と対話します。JSONを新しいXMLと考えるかもしれません。

ところでJSONはJavascript Object Notationの略です。これは、javascriptのオブジェクトの標準構文に従います。

例:var blah = {'variable_name': 'variable_value'};

私の答えは、何に関わらずJSONを使用することですが、あなたの視聴者は送信するデータ量を決定する必要があります。

+1

実際にあなたの答えを徹底的に確認するために+1。 –

-1

、あなたが心配する必要はいけないので、私は最後のスタイリングをバック好きブラウザの互換性(interent explorer)について

+0

JavaScriptとPHPを使用してHTMLを作成する上で互換性がありますか? – Ryan

1

非常に単純なサイト/例では大したプロジェクトでは、いつもよりポータブルなjsonレスポンスを持っています。

jsonを使用すると、サーバーコールとjsビューの両方のロジックが再利用可能になります。

0

JSONが私の好みです。 JavaScriptでHTMLを適切に扱う方がはるかに簡単で、PHPのjson_encodeは非常に便利です。さらに、素晴らしい、きれいなMVCの感じを与える。

関連する問題