2009年10月8日 星期四

AJAX - Asynchronous JavaScript And XML


AJAX算是一個不算是一個新的技術,利用非同步的方式,提供互動式的網頁,AJAX面對最大的問題就是各個Browser之間對Java Script的標準與設計不一,常常寫好的能在FireFox上執行,在IE卻不能執行,所以在設計AJAX的時候最好考慮一下相容性的問題。
簡單的來說,AJAX提供XMLHttpRequest送出request給Web Server,接著等待回應,並處理回應的資料。

XMLHttpRequest

由於Browser之間對Java Script的標準與設計不一,所以下面的寫法可以用於大多數的形況。
// Provide the XMLHttpRequest class for IE 5.x-6.x: // Other browsers (including IE 7.x-8.x) ignore this // when XMLHttpRequest is predefined if (typeof(XMLHttpRequest) == "undefined") { XMLHttpRequest = function() { try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch(e) {} try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} throw new Error("This browser does not support XMLHttpRequest."); }; } xmlHttpRequest = new XMLHttpRequest(); 有了XMLHttpRequest之後,我們就可以送出request並且處理資料

xmlHttpRequest.onreadystatechange = function () { //處理來自Server的回應 if(xmlHttpRequest.readyState==4) { alert(xmlHttpRequest.responseText); // Server回應的內容 // 如果回傳的是XML資料可以使用responseXML } } xmlHttpRequest.open("GET","my.php", true); // 設定送出的method(GET/POST), 以及對象(URL) // 基於安全考量,你不能呼叫不同網域的網頁。如果網域不同時會出現「權限不足,拒絕存取」的錯誤。 // 第三個參數設定此request是否不同步進行,如果設定為TRUE,則即使伺服器尚未回傳資料,也會繼續執行其餘的程式。 xmlhttp.send(null); // 送出request
StateDescription
0The request is not initialized
1The request has been set up
2The request has been sent
3The request is in process
4The request is complete



2009年10月6日 星期二

vmware server on Linux(ubuntu 9.04)


VMware Server現在也正式成為VMware的一個免費產品。所以記得前往官方網站下載註冊碼,VMware Server提供Linux和Windows兩個平台,下載後解壓縮,執行sudo ./vmware-install.pl,基本上一直按enter就會用default值安裝。 常遇到的問題就是出現找不到linux的header file(因為要編譯module): What is the location of the directory of C header files that match your running kernel? 解決方法就是安裝heade file嚕sudo apt-get install linux-headers-`uname -r`。移除時,執行sudo vmware-uninstall即可。 vmware server 2.0是以web方式呈現,https://server:8333,然後輸入之前設定時的admin account即可進入修改(必須是存在系統的帳號)。

Virtual Box on Linux(ubuntu 9.04)


ubuntu 9.04的apt預設會以virtualbox-ose取代virtualbox-3.0,所以必須修改一下apt。 1. 編輯 /etc/apt/sources.list 加上下列內容。 deb http://download.virtualbox.org/virtualbox/debian jaunty non-free 2. 加入 Sun public key for apt-secure。 wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add - 3. 更新 Source List。 sudo apt-get update 4. 安裝 VirtualBox 3.0。 sudo apt-get install virtualbox-3.0 5. 執行VirtualBox。

terms

host OS:實際在機器上執行的OS。 guest OS:在Virtual Machine上執行的OS。 Guest Additions:通常VM會提供一些套件,安裝在guest OS上,增加guest OS的效能與提供額外的功能。

熱門文章