日志内容

2006-03-21[原]无刷新读取ASP文件

TAG:原创 ASP 无刷新 AJAX JScript

改了一下昨天的脚本,想要实现读取ASP文件的结果,主要是改了handleStateChange() 函数,但是遇到了编码的问题,读取出来的内容是乱码,找了一些资料,有提到一些方式,不过是使用隐藏一个框架或隐藏一个span标签,再通过定时刷新之类的方法,这与AJAX的XMLHTTP方法不太一样,虽然也可以实现无页面刷新(好像有点跑题了-_-|||)。说回编码的问题,网上的解决方法还真的很少,找了半天没找到一种合适的,不到倒是知道了原因,是因为ResponseText属性默认将响应数据的编码定为UTF-8。还好遇到个高手,介绍了一种方法,就是在服务器端用escape()编码内容,再在客户端用unescape()解编码。下面是相关的代码:

---------------------js---------------------------
<script language="javascript">
var xmlHttp;
var ready = false;

//创建对象
function createXMLHttpRequest(){
if (window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if (window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest("Msxml2.XMLHTTP.3.0");
}
}

//发请请求
function doSearch(url){
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.open("GET",url,"true");
xmlHttp.send(null);
}

//处理响应
function handleStateChange(){
if (xmlHttp.readyState == 4){
if (xmlHttp.status == 200){
document.getElementById("results").innerHTML = unescape(xmlHttp.ResponseText);//用unescape()解编码
}
}
else {
document.getElementById("results").innerHTML = "请稍候……";
}
}

//取得URL
function createURL(text){
var url;
url = "BranchAreaInfo.asp?AreaID=";
if (text != ""){
url += escape(text);
doSearch(url);
}
}
</script>
-------------------------------------------------

--------------------ASP--------------------------
<%
Dim WDiv
.....

do while not rsBAI.eof

WDiv = WDiv & "<div class='shop_list2'>"
WDiv = WDiv & "<div class='shop_list'>"
WDiv = WDiv & "<a href='#'><img alt='" & rsBAI("name") & "' src='" & rsBAI("photo") & "' /></a>"
WDiv = WDiv & "<dl>"
WDiv = WDiv & "<dt><a href='#'>"& rsBAI("name") & "</a></dt>"
WDiv = WDiv & "<dd>电话:" & rsBAI("phone")& "</dd>"
WDiv = WDiv & "<dd>传真:" & rsBAI("fax")& "</dd>"
WDiv = WDiv & "<dd>地址:" & rsBAI("address")& "</dd>"
WDiv = WDiv & "<dd class='lookall'><a href='#'>参观一下</a></dd>"
WDiv = WDiv & "</dl>"
WDiv = WDiv & "</div>"
WDiv = WDiv & "</div>"

rsBAI.movenext
loop
response.Write(vbescape(WDiv))
%>
<script language="javascript" runat="server">
function vbescape(text){
return escape(text);//用escape()编码
}
</script>
------------------------------------------------


2006-03-20[原]用JS读取XML的例子

TAG:原创 XML JScript AJAX 无刷新

刚开始学XMLHTTP,试写的一个读取XML的JS脚本,没什么技术含量,主要用来读取一个类似于通讯录的XML文件。

------------------------------js-----------------------------------
<script type="text/javascript">
var xmlHttp;

//创建对象
function createXMLHttpRequest(){
 if (window.ActiveXObject){
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
 }else if (window.XMLHttpRequest){
  xmlHttp = new XMLHttpRequest("Msxml2.XMLHTTP.3.0");
 }
}

//发请请求
function doSearch(url){
 createXMLHttpRequest();
 xmlHttp.onreadystatechange = handleStateChange;
 xmlHttp.open("GET",url,"true");
 xmlHttp.send(null);
}

//处理响应
function handleStateChange(){
 if (xmlHttp.readyState == 4){
  if (xmlHttp.status == 200){
   parseResults();
  }
 }
}

//取得URL
function createURL(text){
 var url;
 url = "BranchAreaInfo.asp?AreaID=";
 if (text != ""){
  url += escape(text);
  doSearch(url);
 }
}

//读取XML文件
function parseResults(){

 var results = xmlHttp.responseXML;
 var sDiv = "";

 var shop = "null";
 var name ="";
 var address = "";
 var phone = "";
 var fax = "";

 var hhitshop = results.getElementsByTagName("shop");
 for (var i = 0; i< hhitshop.length; i++){
  shop =  hhitshop[i];
  name = shop.getElementsByTagName("name")[0].firstChild.nodeValue;
  phone = shop.getElementsByTagName("phone")[0].firstChild.nodeValue;
  fax = shop.getElementsByTagName("fax")[0].firstChild.nodeValue;
  address = shop.getElementsByTagName("address")[0].firstChild.nodeValue;

  sDiv += addDiv(name,photo,address,phone,fax);
 }
 document.getElementById("results").innerHTML = sDiv;
}

//输出格式化
function addDiv(name,photo,address,phone,fax){
 var WDiv = "<div class='shop_list'>";
 WDiv += "<a href='#'><img alt='"+ name +"' src='"+ photo +"' /></a>";
 WDiv += "<dl>";
 WDiv += "<dt><a href='#'>名称</a></dt>";
 WDiv += "<dd>电话:"+ phone +"</dd>";
 WDiv += "<dd>传真:"+ fax +"</dd>";
 WDiv += "<dd>地址:"+ address +"</dd>";
 WDiv += "</dl>";
 WDiv += "</div>";
 
 return WDiv;
}
</script>
----------------------------------------------------------------

-----------------------------XML------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<hhitshop>

 <shop>
  <name>aa</name>
  <phone>01234567</phone>
  <fax>01234567</fax>
  <address>aaaaa</address>
 </shop>

 <shop>
  <name>bb</name>
  <phone>12345678</phone>
  <fax>12345678</fax>
  <address>bbbbb</address>
 </shop>

 <shop>
  <name>cc</name>
  <phone>23456789</phone>
  <fax>23456789</fax>
  <address>ccccc</address>
 </shop>
</hhitshop>
-----------------------------------------------------------------


分页 共1页 1
订阅>>使用RSS邮天下订阅>>Google订阅s

Q我 GTalk联系

Recent Articles

Recent Comments

Recommend

Archive

广 州
The WeatherPixie

Search Engine Optimization

CSS森林:30247792
(精神正常者慎入!)

访问统计:

011 本BLOG[原]部分的内容采用创作共用授权,请尊重劳动成果,谢谢。
Copyright © 2006 风的影子. All rights reserved.   FORESt.blOGbUS.COM  BLOGBUS.COM