手机
当前位置:查字典教程网 >编程开发 >AJAX相关 >配合AJAX天气预报的webService 之asp
配合AJAX天气预报的webService 之asp
摘要:因为发现AJAX目前跨域有点问题,只能在IE里面设置才可以使用,所以自己就写了个简单ASP的webService,其实作用就是一个小偷程序,...

因为发现AJAX目前跨域有点问题,只能在IE里面设置才可以使用,所以自己就写了个简单ASP的webService,其实作用就是一个小偷程序,把雅虎的天气抓了过来,然后生成XML。先从这里开始吧,以后会考虑添加数据库,这样客户端写好后读取速度就很快了。

习惯了用JS写东西,一不小心ASP也全拿JS写的,呵呵,有时间再改成VB。

我再鄙视他一下,FLASH是N年前就搞过的,时间虽然丢的有点长了,但是在AW的帮助,慢慢就会有所起色。

总算平息了火,还算是又默默改变了一件事情。

复制代码 代码如下:

<%@LANGUAGE="JAVASCRIPT"CODEPAGE="65001"%>

<%

Session.CodePage="65001"

Response.contentType="text/html"

Response.Expires=0

varN=Request("n")

varNum=Request("id")

varurl="http://xml.weather.yahoo.com/forecastrss?p="+N+"&u=c&id="+Num;

varxmldoc=Server.CreateObject("Microsoft.Xmlhttp");

xmldoc.open('GET',url,false);

xmldoc.send(null);

varresponse=xmldoc.responseXML.documentElement;

varlastNode=response.selectNodes("//rss/channel/lastBuildDate");

varcityNode=response.selectNodes("//rss/channel/yweather:location");

varwindNode=response.selectNodes("//rss/channel/yweather:wind");

varatmosphereNode=response.selectNodes("//rss/channel/yweather:atmosphere");

varastronomyNode=response.selectNodes("//rss/channel/yweather:astronomy");

varconditionNode=response.selectNodes("//rss/channel/item/yweather:condition");

varforecastNode=response.selectNodes("//rss/channel/item/yweather:forecast");

varlastV=lastNode(0).firstChild.nodeValue

//编辑属性

functionattri(a,b,c){

returna(b).attributes.getNamedItem(c).value

}

varcityV=attri(cityNode,0,"city")

varchillV=attri(windNode,0,"chill")

vardirectionV=attri(windNode,0,"direction")

varspeedV=attri(windNode,0,"speed")

varhumidityV=attri(atmosphereNode,0,"humidity")

varvisibilityV=attri(atmosphereNode,0,"visibility")

varsunriseV=attri(astronomyNode,0,"sunrise")

varsunsetV=attri(astronomyNode,0,"sunset")

vartextV=attri(conditionNode,0,"text")

varcodeV=attri(conditionNode,0,"code")

vartempV=attri(conditionNode,0,"temp")

//转换英文为中文

varcityCH=EN2CH(cityV)

functionEN2CH(obj){

if(obj=="Wuhan"){return"武汉"}

elseif(obj=="Nanchang"){return"南昌"}

elseif(obj=="Haikou"){return"海口"}

elseif(obj=="Beijing"){return"北京"}

elseif(obj=="Shanghai"){return"上海"}

elseif(obj=="Guangzhou"){return"广州"}

elseif(obj=="Yinchuan"){return"银川"}

elseif(obj=="Zhengzhou"){return"郑州"}

elseif(obj=="Changsha"){return"长沙"}

elseif(obj=="Hanzhong"){return"杭州"}

elseif(obj=="HongKong"){return"香港"}

elseif(obj=="Xin'an"){return"西安"}

elseif(obj=="Chengdu"){return"成都"}

elseif(obj=="Qingdao"){return"青岛"}

elseif(obj=="Guiyang"){return"贵阳"}

elseif(obj=="Jinan"){return"济南"}

elseif(obj=="Hefei"){return"合肥"}

elseif(obj=="Fuzhou"){return"福州"}

elseif(obj=="Nanjing"){return"南京"}

else{returnobj}

}

//风向函数

varwindCH=wind(directionV)

functionwind(a){

if(a>337&&a<=360){return"北风"};

elseif(a>=0&&a<=22){return"北风"};

elseif(a>22&&a<=67){return"东北风"};

elseif(a>67&&a<=112){return"东风"};

elseif(a>112&&a<=157){return"东南风"};

elseif(a>157&&a<=202){return"南风"};

elseif(a>202&&a<=247){return"西南风"};

elseif(a>247&&a<=292){return"西风"};

elseif(a>292&&a<=337){return"西北风"};

}

//能见度函数

visibility=vis(visibilityV)

functionvis(a){

returna/100

}

//转换天气为中文

vartextCH=tEN2CH(textV)

functiontEN2CH(obj){

if(obj=="Clear"){return"晴朗"}

elseif(obj=="Sunny"){return"晴天"}

elseif(obj=="PartlyCloudy"){return"局部有云"}

elseif(obj=="MostlyClear"){return"晴"}

elseif(obj=="MostlySunny"){return"小云"}

elseif(obj=="MostlyCloudy"){return"多云"}

elseif(obj=="Cloudy"){return"云"}

elseif(obj=="Sunny/Wind"){return"晴转云"}

elseif(obj=="AMClouds/PMSun/Wind"){return"云转晴"}

elseif(obj=="AMShowers"){return"晨雨"}

else{returnobj}

}

//天气图片

varweaNum=weaimg(codeV)

functionweaimg(obj){

return"<imgsrc="http://us.i1.yimg.com/us.yimg.com/i/us/we/52/"+obj+".gif"/>"

}

//星期替换

functiondayEn(obj){

if(obj=="Sun"){return"星期日"}

elseif(obj=="Mon"){return"星期一"}

elseif(obj=="Tue"){return"星期二"}

elseif(obj=="Wed"){return"星期三"}

elseif(obj=="Thu"){return"星期四"}

elseif(obj=="Fri"){return"星期五"}

elseif(obj=="Sat"){return"星期六"}

else{returnobj}

}

%>

<tablewidth="163"border="0"align="center"cellpadding="0"cellspacing="0">

<tr>

<tdrowspan="6"align="center"><%=cityCH%><br/>

<%=weaNum%><br/>

<%=textCH%></td>

<tdalign="right">感觉:</td>

<tdalign="center"><%=chillV%>°</td>

</tr>

<trstyle="background-color:#E6F5FF">

<tdalign="right">实际:</td>

<tdalign="center"><%=tempV%>°</td>

</tr>

<tr>

<tdalign="right">风向:</td>

<tdalign="center"><%=windCH%></td>

</tr>

<trstyle="background-color:#E6F5FF">

<tdalign="right">风速:</td>

<tdalign="center"><%=speedV%>Kph</td>

</tr>

<tr>

<tdalign="right">湿度:</td>

<tdalign="center"><%=humidityV%>%</td>

</tr>

<trstyle="background-color:#E6F5FF">

<tdalign="right">能见度:</td>

<tdalign="center"><%=visibility%>km</td>

</tr>

</table>

<tablewidth="163"border="0"align="center"cellpadding="0"cellspacing="0">

<tr>

<tdcolspan="2"align="center"class="time"><%=lastV%></td>

</tr>

<tr>

<tdbgcolor="#FFFFCC">日出:<%=sunriseV%></td>

<tdbgcolor="#FFCC00">日落:<%=sunsetV%></td>

</tr>

</table>

<tablewidth="163"border="0"align="center"cellpadding="0"cellspacing="0">

<tr>

<%

for(vari=0;i<2;i++){

vardayV=attri(forecastNode,i,"day")

vardateV=attri(forecastNode,i,"date")

varlowV=attri(forecastNode,i,"low")

varhighV=attri(forecastNode,i,"high")

vartexttV=attri(forecastNode,i,"text")

varcodetV=attri(forecastNode,i,"code")

vardayCH=dayEn(dayV)

vartexttCH=tEN2CH(texttV)

varweabmp=weaimg(codetV)

//varweatNum=weaimg(codetV)

%>

<tdalign="center"><%=dayCH%><br/><%=weabmp%><br/><%=texttCH%><br/>最高<%=highV%>°<br/>最低<%=lowV%>°</td>

<%

}

%>

</tr>

</table>

【配合AJAX天气预报的webService 之asp】相关文章:

详解ajax +jtemplate实现动态分页

Ajax带提示的验证表单实例

使用对象封装ajax重复调用的方法

AJAX天气预报前台

PHP+AJAX无刷新实现返回天气预报数据

Ajax传输中文乱码问题的解决办法

AJAX实现图片预览与上传及生成缩略图的方法

php ajax网站浏览统计功能的简单实现第1/2页

ajax完美解决的下拉框的onchange问题

深入浅析Nginx实现AJAX跨域请求问题

精品推荐
分类导航