当前位置: 首页 > 图文教程 > 网络编程 > AJAX技术 > AJAX天气预报前台

AJAX技术
自己动手封装的 ajax
Ajax 对象 包含post和get两种异步传输方式
Ajax 超时检查脚本
AJAX 简介及入门实例
ajax 开发守则 10条说明
Ajax 返回字符串的过滤实现代码
Ajax 程序开发中常见问题
AJAX 验证框架13个
ajax 入门基础之 XMLHttpRequest对象总结
基于AJAX的分页类实现代码
如何在Asp.net中使用HtmlArea编辑器
使用 jQuery 简化 Ajax 开发
ASP.NET 与 Ajax 的实现方式
AJAX技术介绍
Ajax程序设计入门
学习Ajax教程,详细了解Get与Post
关于Ajax responseText 的一点阐述
ajax中文乱码解决方法
AJAX中文问题总结
AJAX无刷新更新数据

AJAX技术 中的 AJAX天气预报前台


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 42 ::
收藏到网摘: n/a

直接配合前面的后台程序,就可以实现跨域抓取天气信息了.
目前已完美支持firefox了
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="JavaScript" type="text/javascript">
function $() {
return document.getElementById(arguments[0])
}
function btnSty(objId,objStyle)
{
$(objId).style.display = objStyle
}
//提示窗口控制
function ifodis(){
btnSty('loadifo','none');
}
function settime(a){
setTimeout(a,1000);
}
function loadtime(){
$("loadifo").innerHTML += "."
}
//XML数据绑定
var xmldoc = false;
function loadurl(n){
//生成随机数,同时限制刷新次数
var now=new Date();
var Num=now.valueOf();
//定义往址参数
url = "weather.asp?n="+n+"&id="+Num;
//定义为异步传输模式
xmldoc = false;
//Mozill,Safari等浏览器时需要创建的XMLHttp类
if(window.XMLHttpRequest){
xmldoc = new XMLHttpRequest();
if(xmldoc.overrideMimeType){
xmldoc.overrideMimeType('text/xml');
}
}
//IE浏览器时创建的XMLHttp类
else if(window.ActiveXObject){
try{
xmldoc = new ActiveXObject("Msxml3.XMLHTTP");
}
catch(e){
try{
xmldoc = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xmldoc = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){}
}
}
}
//不能创建XMLHTTP类时返回
if(! xmldoc){
return false;
}
//调用CheckState函数
xmldoc.onreadystatechange = CheckState;
xmldoc.open('GET',url,true);
xmldoc.send(null);
}
//状态检测
function CheckState(){
btnSty('loadifo','')
//收到完整的服务器响应
if(xmldoc.readyState == 1){
$("loadifo").innerHTML = "连接服务器"
}
else if(xmldoc.readyState == 2){
$("loadifo").innerHTML = "开始加载数据"
}
else if(xmldoc.readyState == 3){
$("loadifo").innerHTML = "正在加载数据"
settime(loadtime)
}
else if(xmldoc.readyState == 4){
//HTTP服务器响应值成功
if(xmldoc.status == 200){
//将服务器返回的字符串写到页面中ID为showdiv的区域
$("loadifo").innerHTML = "加载完成"
var response = xmldoc.responseText;
settime(ifodis)
$("prolist").innerHTML = response;
}
else{
$("loadifo").innerHTML = "错误"+xmldoc.statusText+"请重新选择";
}
}
}
</script>
<style type="text/css">
<!--
body {
margin: 0px;
padding: 0px;
font-size: 9pt;
}
-->
</style>
</head>
<body onload="loadurl('CHXX0138')">
<div>
<select onchange="loadurl(this.value)">
<option value="CHXX0138" selected="selected">武汉</option>
<option value="CHXX0097">南昌</option>
<option value="CHXX0502">海口</option>
<option value="CHXX0008">北京</option>
<option value="CHXX0116">上海</option>
<option value="CHXX0037">广州</option>
<option value="CHXX0259">银川</option>
<option value="CHXX0165">郑州</option>
<option value="CHXX0013">长沙</option>
<option value="CHXX0390">杭州</option>
<option value="CHXX0049">香港</option>
<option value="CHXX0146">西安</option>
<option value="CHXX0016">成都</option>
<option value="CHXX0110">青岛</option>
<option value="CHXX0039">贵阳</option>
<option value="CHXX0064">济南</option>
<option value="CHXX0448">合肥</option>
<option value="CHXX0031">福州</option>
<option value="CHXX0099">南京</option>
<option value="ITXX0042">米兰</option>
</select>
<span id="loadifo"></span></div>
<div id="prolist"></div>
</body>
</html>