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