0

チーム、ブラウザにサーバーからプロパティ ファイルを読み込ませたいのですが。だから私は以下のようにJquery/AJaXに従っています。

<script>
var properties = null;
$(document).ready(function(){
    $.ajax({url:"demo_test.txt",success:function(result){
    properties = result;
    //properties = $('#result').val()
    //jQuery.globalEval("var newVar = result;")
    document.write("inside " + properties);
}});
});
document.write("outside " + properties );
</script>

ここで「内部」はファイルの文字を適切に出力しています。しかし、「 outside 」はプロパティに対して null を出力しています。

  1. なんで?
  2. ページに「外部」出力が表示されます。「内側」行にコメントした場合のみ?なんでそうなの?
  3. データをさらに処理するために jquery の結果を取得するにはどうすればよいですか?
  4. サーバーにプロパティー・ファイル (key=value) を入れることはできますか? java.util.property :: getValue("key") のような jquery/ajax によって提供される機能はありますか? 上記が不可能な場合。プロパティ ファイルを JSON または XML ファイルとして保持し、キーの値を取得するために Ajax によって提供される任意のユーティリティを保持できますか??

アップデート:

私はいくつかの調査を行い、Q4の回答を更新しました。
プロパティファイルの読み方がわかりませんが、xml/jsonファイルの読み方を教えていただきました。

以下のように同期 Ajax 呼び出しを変更した後

var properties = null;
   $.ajax({
   url : "demo_test.txt",
   async : false,
   success : function(result)
   {
       properties = result;
       document.write("inside " + properties);
    }
}); 

サーバー側に以下の XML ファイルがある場合、解析する方法は次のとおりです。

 <?xml version="1.0"?>
 <server>
    <name>velu</name>
 </server> 

if (window.DOMParser)
{
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(property,"text/xml");
}
else // Internet Explorer
{
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.async=false;
    xmlDoc.loadXML(property); 
} 
alert(xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue);


サーバー側にjsonコンテンツがある場合

{
"name":velu
}

var obj = JSON.parse(property);
alert(obj.name);  



ファイルにアクセスするための Javascript スタイル (非同期)

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{// listener
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    property = xmlhttp.responseText;
    }
}
xmlhttp.open("GET","demo_test.txt",true);
xmlhttp.send();
while (property != null) {
    alert(property); 
    break;
}
4

1 に答える 1