2012-04-14 14 views
1

私はjavascriptが初めてです。私は、ディレクトリ内のすべてのファイルを一覧表示するphpファイルを持っています。私はそのファイルを呼び出してjson配列を取得し、javascriptのみを使用してエコーします。私はjqueryがそれを行うことができることを知っている...しかし、これは私が行う必要がある唯一のものです。そのためにjqueryを学ぶ価値はないし、私はこの1つの事のために使うつもりのライブラリで私のページを膨らませたくない。純粋なjavascriptを使用して別の(php)ファイルからJSONを取得しますか?

+0

は、AJAXを見て - ところで、あなたjqueryのlibは既にブラウザでキャッシュされているので、余分な負荷がかかりません - 実際にそこのフレームワークを使用することをお勧めします。 – scibuff

+0

私はそれがまだだと主張したいjQueryを使う価値があります。それはあなたが得るより短いコードだけでなく、より安定したコードでもあります。 jquery.min.jsファイルを自分のサーバーまたはCDNでホストすると、ロードに要する時間は無視できます。 – Hubro

+1

"純粋な" ajaxを扱うのは単純なことではありません.jQueryのような準備されたライブラリを使って作業するのは非常に簡単です。 AJAX(完全にクロスプラットフォームではない--jQueryや他のライブラリを使って問題を解決する) –

答えて

2

AJAXのすべての異なるブラウザを扱うことが苦痛で、私はあなたが他のもののために長期的にそれを使用すると確信しています。

あなたが本当にここにこれをしたい場合は、JSネイティブ要求の例である:

function ajaxRequest(){ 
var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE 
if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken) 
    for (var i=0; i<activexmodes.length; i++){ 
    try{ 
    return new ActiveXObject(activexmodes[i]) 
    } 
    catch(e){ 
    //suppress error 
    } 
    } 
} 
else if (window.XMLHttpRequest) // if Mozilla, Safari etc 
    return new XMLHttpRequest() 
else 
    return false 
} 

このようにあなたがそれを使用します。

var mygetrequest=new ajaxRequest() 
mygetrequest.onreadystatechange=function(){ 
if (mygetrequest.readyState==4){ 
    if (mygetrequest.status==200 || window.location.href.indexOf("http")==-1){ 
    var jsondata=eval("("+mygetrequest.responseText+")") //retrieve result as an JavaScript object 
    var rssentries=jsondata.items 
    } 
    else{ 
    alert("An error has occured making the request") 
    } 
} 
} 

mygetrequest.open("GET", "mypage.php", true) 
mygetrequest.send(null) 
関連する問題