1.省市联动2.用户名无刷新验证3.股票信息的实时更新4.天气预报5.qq聊天室
ajax代理
ajax回传的数据格式:字符串,xml,json
注意:eval("("+json+")"); eval存在一定的安全缺陷,一般无伤大雅
json的数据格式:
{
"paramArray":
[{"param1":"str1","param2":"str2","param3":"str3"},{"param1":1,"param2":"str2","param3":"str3"}],
"array":["param1":"str1","param2":"str2","param3":"str3"],"param":"simple"
}
ajax的基本语法--数据传送方式
1.xmlRequest.open("get",url,true)//打开连接,但是并没有发送
xmlRequest.send(null);
//设为null
2.xmlRequest.setrequsetheader("content-type":"");//必须的
xmlRequest.open("post",url.true)
//true:表示异步,false:表示同步
xmlRequest.send(data);
//需要传送的数据
---省市联动
xxx.js
function creatXmlHttp()
{ var xmlrequest=null; try
{ xmlrequest= new XMLHttpRequest(); }catch
{ try{ xmlrequest=new ActiveXObject("Microsoft.XMLHTTP"); }catch
{ alert("sorry.your explore don‘t support this function"); } return xmlrequest; } functon $get(id){ return document.getElementById(id); //.value取节点值 }
xxxpro.php
<?php header("Content-Type:text/html;charset=utf-8"); //此处与返回格式对应 header("Cache-Control:no-cache"); $cityList=$_POST["cityList"]; for(i=0;i<count(cityList);i++)
{//暂时不操作数据库 if(cityList(i)=="city1")
{ echo"{"subcity11":"city1","subcity12":"city2","subcity13":"city3"}"; }
else if(cityList(i)=="city2")
{//json $res.=‘{"cityname":‘.$cities[$i].‘,"price":‘.rand(500,1500).‘}‘; echo"{"subcity11":"city4","subcity12":"city5","subcity13":"city6"}";
} } ?>
xxxview.php
<select id="pro" onchange="sendRequest();"> <option value=""></option> <option value="city1">city1</option> ... <select/> <select id="city" value=""> ... <select/> <script type="text/script" language="javascript"> function sendRequest() { var xmlRequest=creatXmlHttp();//注意用法 var data="city[]=city1&city[]=city2&city[]=city3"; var url="xxxpro.php?cityList="+data; xmlRequest.setRequestHeader("Content-Type:"); xmlRequest.open("Post",url,true); xmlRequst.onreadystatechange=profun; //一个是函数的引用,一个是赋函数的地址。profun带不带()的区别 xmlRequest.send(data); } function profun() { if(xmlRequest.readystate=4 && xmlRequest.status=200) { $get("city").length=0; var subCityList=eval("("+xmlRequest.responseText+")"); //responseXML,返回类型为xml对象(xml dom) var subcitys =xmlRequest.responseXML.getElementsByTagName; var val =mes[0].childNodes[0].nodeValue; for(var i=0;i<subcitys;i++) { var city_name=subCityList[i].childNodes[0].subcity11; var subcity=document.createElement("option");//注意语法 subcity.value=city_name; subcity.innerText=city_name; $get("city").appendChild(subcity); ... } } } </script>
小知识:
1.<?php
?>
//当此文件为被引用文件时,最好不必带上。
//当此文件引用其他文件时,最好带上。
2.ie下的get
ajax,如果url不发生变化,ie会从缓存中取数据,而不真正的发生请求。----解决方法:为url加上时间戳(new
Date()),或者在服务器回送结果时,禁用浏览器缓存
3.边输入边验证 onkeyup="ajax()"
4.dom 分为 xml
dom和html dom
5.smarty->assign($list); //smarty提供数据展现方式
6.js
typeof(var) //返回变量类型
7.js 中的数组长度length,
size(),php中的数组长度count($arr);
8.xml是最通用的数据格式
9.js 定时器
setInterval(函数名,5000);
10.file_put_contents("文件名","写入内容",写入方式);
11.FILE_APPEND
//向指定文件中添加指定信息,此方式为调试程序的神器
数据库知识点:
1.表过大会影响查询速度,解决办法合理分表。
2.数据库群集,定时回传,(手机漫游,qq的通讯方式)