刚发现一个新玩意 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,前台调用)<?PHPIF(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>');