最近一直在開發ajax應用程序。眾所周知ajax的特點是客戶端和服務器分離,客戶端通常由純javascript組成,通過xmlhttprequest對象與服務器通信。在調試客戶端代碼時,如果服務器開在本地,尚可通過samba等方式直接編輯服務器上的客戶端js代碼,倘若服務器在異地,那么每次修改js代碼后通過ftp等方式上傳之后再調試就十分費事。說到這里自然會想到將js代碼放到本地,然而xmlhttprequest卻只能訪問同一域名下的url,本地的js代碼無法直接使用遠程服務器上的服務。
迷茫之際,同事介紹了delegate這款軟件,利用它即可實現本地調試客戶端代碼。
delegate實際上是一個功能強大的代理服務器,它有個類似于linux的mount功能,能夠將internet上的url映射到本地。利用這個功能,即可將遠程的服務器端和本地的客戶端集成到同一個域名下,實現客戶端代碼的本地調試。
方法如下:
將apache配置到本機的8080端口,然后將客戶端代碼放在htdocs下,使之能夠通過 http://localhost:8080/client/ 訪問。
下載delegate并解壓縮。 編輯以下的配置文件 delegate.cfg。
| -p80 admin="yourname@yourmail.com" mount="/client/* http://localhost:8080/client/*" mount="/cgi-bin/* http://server-address/cgi-bin/*" |
第一行的 -p80 指定delegate使用80端口;第二行的admin指定管理員郵件地址,可以隨意設置;第三行將客戶端映射到 delegate 的 /client/ 路徑下;第四行將遠程服務器目錄映射到 delegate 的 /cgi-bin/ 路徑下。
另外,如果你需要通過代理服務器訪問遠程服務器,可以這樣設置:
| mount="/cgi-bin/* http://server-address/cgi-bin/*" proxy="代理服務器地址:端口" |
在命令行輸入以下命令安裝delegate。注意不同版本的delegate的可執行文件名不同。
打開瀏覽器,訪問 http://localhost/client/。這樣即可隨時看到對js代碼的修改。
實際上,用好這個方法還可以“盜用”許多網站的服務,即自己開發客戶端,再通過 delegate 將請求轉發給服務器。其方法不再詳述。
新聞熱點
疑難解答