2012年10月29日 星期一

[Javascript] XMLHttpRequest同步與非同步取檔

在本機未使用Web Server的情況下測試網頁Javascript程式,若需要讀取檔案,以Web File API需搭配INPUT tag但只限本機檔案, Jimmy's papa也測試過
var file=File(path) //insecure exception
但會產生insecure例外

如果要讀取網頁路徑下的檔案,則需借助AJAX,也就是運用XMLHttpRequest物件
    var xmlhttp,fname;  
    if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest();    
    if (xmlhttp == null) alert("Your browser does not support XMLHTTP.");
    /*異步時,在open與send之前用這段程式碼*/
    //xmlhttp.onreadystatechange = function() {
    //    if (xmlhttp.readyState==4) {
    //        alert(xmlhttp.responseText);}}
    xmlhttp.open("GET", fname, false);//false為同步,true為異步
    xmlhttp.send(null);
    /*同步時,在open與send之後用這段程式碼*/
    if (xmlhttp.status == 200 || xmlhttp.status == 0) { //0為本機開檔 
        alert('xmlhttp.status '+xmlhttp.status);
        alert(xmlhttp.responseText);  
    }else{  
       alert(xmlhttp.statusText);}  

沒有留言:

張貼留言