我们在制作自己的网站时,一般会开放博客的评论系统,以供博主和访客互动,大家可以看到wordpress博客评论系统就是利用ajax技术实现的无刷新的模块。ajax实际并不复杂,我们多多少少都有接触,js前台+asp/php等后台服务器脚本之间的交互。
飘易花了点时间,把飘易博客的评论系统也改成了ajax无刷新评论系统。主要有这样的一个 js 文件,例如我的命名为 com.js,以及对应的后台服务器脚本,如asp\php文件。
剩下的就是利用ajax提交给后台服务器脚本处理了,返回相应的处理后的代码给js,回传显示就ok了,当然,下面的代码没有加入一些判断,比如是否为空,是否含非法关键字等的判断,你可以自行增加修改。
com.js代码:
//利用AJAX的无刷新评论
function subok(){
var xmlhttp;
try{
xmlhttp = new XMLHttpRequest();
}catch(e){
try{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
try{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
xmlhttp = null;
alert("您的浏览器不支持XMLHTTP,无法完成此操作!");
}
}
}
xmlhttp.open("POST", "../addcom.asp", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=gb2312");
xmlhttp.send("c_id1="+document.getElementById('c_id1').value+"&c_name="+escape(document.getElementById('c_name').value)+"&c_email="+escape(document.getElementById('c_email').value)+"&c_site="+escape(document.getElementById('c_site').value)+"&c_content="+escape(document.getElementById('c_content').value));
if(xmlhttp.status==200){
strText = xmlhttp.responseText;
document.getElementById("commtwait").innerHTML=strText;
document.getElementById("c_content").value="";
}
}
几个注意点:1、js是对大小写敏感的。 2、后台服务器脚本要做好安全判断,js毕竟是客户端的东西,我们不可全部相信。 3、 js和asp后台之间的汉字编码问题,我们可以同时指定它们均为 gb2312 编码。4、提交的时候不要用 form 表单提交,直接使用 这样的 onclick 事件提交。