根据ip地址获得天气预报

     根据访问者的ip地址获得当地的天气情况,最简单的一种方法就是加一个iframe框架方法如下:

<iframe src="http://m.weather.com.cn/m/pn12/weather.htm" frameborder="0" width="200px" height="110px" scrolling="no"></iframe>

如果想得到比较详细的页面可以点击这个网址:http://weather.xixik.com/

这样方法虽然简单,但是有一个很大的缺点就是在IE浏览器下它的背景色是白色的(谷歌浏览器的背景色是透明的)如果你想将他显示在有背景色的条上会出现这种效果:

为了解决这种缺点可以使用第二种方法通过天气预报的WebService接口调用:

思想:1、先找确定访问者所在的地区。

                    string strResponse = GetPageData("http://www.123cha.com/");
                    Match match = Regex.Match(strResponse, @"来自:&nbsp;&nbsp;(.+)&nbsp;");
                    string[] addresses = match.Groups[1].Value.Replace("&nbsp;", " ").Split(' ');//获得Ip所在的城市
                    string address = "北京";
                    int n = 0;
                    if (addresses.Length >= 3)
                    {
                        n = 1;
                    }
                    address = addresses[n].Substring(0, addresses[n].Length - 1);

           2、添加WebService引用:

         添加webService的方法:

       一、添加Web引用(如果是2010添加服务引用)

                  

         二、在输入框中输入下面的网址:

       http://www.webxml.com.cn/WebServices/WeatherWebService.asmx  然后点击前往,记下引用名(引用名可以自己改写)

       

                 

                   最后代码:
                    Weather.WeatherWebService w = new Weather.WeatherWebService();
                    //把webservice当做一个类来操作 
                    string[] s = new string[23];//声明string数组存放返回结果 
                    string city = address;//获得文本框录入的查询城市 
                    s = w.getWeatherbyCityName(city);
                    //以文本框内容为变量实现方法getWeatherbyCityName 
                    if (s[8] == "")
                    {
                        //MessageBox.Show("暂时不支持您查询的城市");
                    }
                    else
                    {
                        string st = s[10];
                    }

 提升:

1、这样下来虽然效果实现了,但是加载速度很慢。为了不让它影响其它页面的加载速度,我将获取天气预报这块单独写了一个页面。然后在需要调用天气的预报的页面加了一个Frame框架。这样天气预报虽然加载慢但是却不会影响其他页面。

2、有好几个页面都用到这个天气预报,我没必要换一个页面就去用WebService去调用天气情况。针对这样情况,我采取只第一次加载的方法。然后将获得天气预报放到Cookie里这样其他页面再使用的时候我可以直接从cookie里调用省了很多时间。

具体代码如下:

  string content = "<table><tr id='temprature' runat='server'><td>" + dt + "&nbsp;" + week + "<td>" + address + ":&nbsp;" + s[10] + "</td></tr></table>";
                    HttpCookie wea = new HttpCookie("weather");
                    wea.Values["date"] = dt;
                    wea.Values["week"] = week;
                    wea.Values["address"] = address;
                    wea.Values["tian"] = s[10];
                    Response.Cookies.Add(wea);
                    temprature.InnerHtml = content;

 

if (Request.Cookies["weather"] != null)
                {
                    HttpCookie wea = Request.Cookies["weather"];
                    string dt = wea.Values["date"];
                    string week=wea.Values["week"];
                    string address=wea.Values["address"];
                    string tian=wea.Values["tian"];
                    string content = "<table><tr id='temprature' runat='server'><td>" + dt + "&nbsp;" + week + "<td>" + address + ":&nbsp;" + tian + "</td></tr></table>";
                    temprature.InnerHtml = content;

 

                }

这样速度加快了很多。

 

转载于:https://www.cnblogs.com/honghong75042/archive/2012/04/12/2443532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值