ajax伴隨的goole 的推動,越來越多的網站開始使用了,在開大ajax程式的時候會遇到很多的問題,主要有以下幾個方面:
跨瀏覽器的問題因為現在有很多的開元的架構已經解決了,我們無需為此而煩惱。
曆史後退狀態問題我們可以使用一個數組來儲存曆史紀錄,然後把這些資料村到曆史對象中去,中的也可以解決,並且還有很多的開元架構給與支援,這樣問題就不是很大。
跨域的問題就不是很好的解決,但是還是有辦法的,一下給出一些基本的解決方案供大家選擇:
- 使用代理,你可以使用web端的程式編寫代理程式,把所有的ajax請求的資料進行轉寄,web程式可以使php,jsp,asp等所有的程式設計語言。相信大家對這種方式一定很熟悉,這裡就不詳細的介紹了。
- 使用iframe的方式來定勢的重新整理葉面,這種方式只是取得資料來顯示,並不能真正的和求得的資料進行互動,轉化成本頁面的動態資料,不是很可取,應用也不是很多,我也忽略不去討論了。
- 使用apache的代理功能,主要就是apache的方向代理,或者是url從定向,你也可以把其他的網站直接的掛在自己的網站上,這樣的方式可能會友邦權的問題,多的九部介紹了,有興趣的本有可以自己實踐以下。
- 使用《script》標籤的方式,這樣的話就可以保正使用真正的ajax來跨域,並且可以使用返回來的資料,發誓很簡單,在我們的背景程式處理後的到的結果都直接的用javascript 的方式返回,在我們的html中直接的使用返回資料的變數就可以了一個簡單的例子
我們使用的html葉面 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <HTML>
3 <HEAD>
4 <TITLE> New Document </TITLE>
5 <META NAME="Generator" CONTENT="EditPlus">
6 <META NAME="Author" CONTENT="">
7 <META NAME="Keywords" CONTENT="">
8 <META NAME="Description" CONTENT="">
9 </HEAD>
10 <SCRIPT LANGUAGE="JavaScript" src="" id="get">
11 </SCRIPT>
12 <SCRIPT LANGUAGE="JavaScript">
13 <!--
14 function get(url)
15 {
16 var obj = document.getElementById("get");
17 obj.src = url;
18 (obj.readStatus == 200)
19 {
20 alert(xml);
21 }
22 }
23 function text()
24 {
25 get (get.php);
26 }
27 //-->
28 </SCRIPT>
29 <BODY>
30 <INPUT TYPE="button" value="CLICK ME" onclick="test()">
31 </BODY>
32 </HTML>
背景程式get.php
eche 'var xml ="asdf";';
當你點擊按鈕的時候就會去伺服器那去你需要的js,但加在完成後就可以自己的使用變數xml了,運行代碼後你會得到一個對話方塊顯示asdf;