剛發現一個新玩意 Ajaj ,即 Asynchronous JavaScript And JOSN。
這個技術可以實作類別ajax的無重新整理互動,但他能夠跨域。
其原理是動態建立一個script標籤,然後把src屬性指向到異域的url,然後異域返回的資料裡調用本地的javacript方法,進行資料處理。
這樣就可以很好的跨域了。
點擊這裡下載詳細介紹的文檔 http://sinaurl.cn/hbra2g
和Ajax相比Ajaj的優缺點:
1.他還無法取代ajax
2.Ajax 預設為非同步請求,用同步方式非常少.Ajaj 僅支援非同步
3.Ajax 不管是get法還是post法請求都ok,但是這個Ajaj如果使用post法會很麻煩
4.Ajaj不會給伺服器造成負載
5.Ajaj所在的頁面必須是標準的HTML頁面,即要有<head>和<body>的完整標籤;否則會導致 document.appendChild 方法無法使用而出錯.
6.由於允許跨域訪問會有安全問題,所以 Ajaj 最好用在對安全要求不高的領域.
7.Ajaj不採用 XMLHTTP,而是 SCRIPT 標籤的 SRC 引用外部指令碼的方式,資料處理效率比 XMLHTTP 高
附上測試代碼:
merchant.php (伺服器A 幕後處理)
<?php
IF(array_key_exists("i",$_GET)){
$i=$_GET['i'];
}Else{
$i=0;
}
if($i!=5){
echo 'alert("fei5");';
} else {
echo 'alert("555");';
}
?>
document.write('<a href="#" onclick="CreateScriptObj(\'@.php?i=5\')">開始</a>');
(伺服器B,前台調用)
<?php
IF(array_key_exists("i",$_GET)){
$i=$_GET['i'];
}Else{
$i=0;
}
if($i!=5){
echo 'alert("fei5");';
} else {
echo 'alert("555");';
}
?>
document.write('<a href="#" onclick="CreateScriptObj(\'@.php?i=5\')">開始</a>');