zoukankan      html  css  js  c++  java
  • 天气插件的替换

      以前在网页中加入过天气的插件,但朋友一直说,为何这一个多月以来,天天的天气怎么都一样的?而且跟实际网上查找到的天气信息不一样。于是我个人就想,是否服务器不能联网更新?但朋友说绝可以,而且还是在服务器上直接打开天气网,发现所以城市的数据根本与网页上的不一致。起初我不太相信,因为数据是从天气网下载下来的。然后每二个小时自动更新一次。于是QQ连过去一看,最新的数据更新是2014.3.4。于是网上一查,发现是天气网停止维护了此数据。想到此,不禁唉的一声,原因你懂得,于是我就跟朋友说,这功能只能取消了。但朋友明显不高兴,说这一功能一直有用,突然不能用了,用户不接受。没办法,只能原本把地址链接过去。但这样一来,每个用户都必须要有上网的权限。这样也不太现实,不知道现在各位采用的方案是? 在此与大家分享一下主要的代码。看各位是否有更好的建议?

    原先的方案

     public static string getWeather()
            {
                string path = HttpContext.Current.Server.MapPath("~/weather.txt");
                DateTime now = DateTime.Now;
                DateTime lastUpdTime = DateTime.Now;
                if (File.Exists(path))
                {
                    lastUpdTime= File.GetLastWriteTime(path);
                }
                else
                {
                    File.Create(path);
                }
                if (now.Subtract(lastUpdTime).Minutes > 120) 

                {
                    string UrlString = "http://m.weather.com.cn/data/101280301.html"

                    string contents = "";
                    WebRequest Wrequest = WebRequest.Create(UrlString);
                    Wrequest.Credentials = CredentialCache.DefaultCredentials;
                    HttpWebResponse Wresponse = (HttpWebResponse)Wrequest.GetResponse();
                    Stream responseStream = Wresponse.GetResponseStream();
                    StreamReader reader = new StreamReader(responseStream);
                    contents = reader.ReadToEnd();
                    reader.Close();
                    responseStream.Close();
                    Wresponse.Close();
                    File.WriteAllText(path, contents);

                }
                return File.ReadAllText(path);
            }

    然后把文件内容发送给前台: this.Page.RegisterClientScriptBlock("data", "<script> var jsData=" + getWeather()+ "</script>");

    现在的方案只能是在前台直接引用

     <iframe id="weather" frameborder="0"  src="http://m.weather.com.cn/m/pn11/weather.htm" height="60" width="500" ></iframe>

    但这样要求每个客户端都要上网,这显然与要求不一致,请问各位现在有什么好办法呢?

  • 相关阅读:
    恢复计算机崩溃数据的五款最佳Linux发行版
    不敢想象!Vim使用者的“大脑”竟是这样
    开发者和系统管理者最喜爱的开源工具Vim 起步学习的五个技巧
    .NET程序与CA对接一直提示重定向
    覆盖原有div或者Input的鼠标移上去描述
    IOS9以上如何导入铃声并设置
    c# 动态调用webserver
    没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的
    url 参数的加号变成空格处理
    在git 服务器挂载、创建新的项目、克隆新的项目
  • 原文地址:https://www.cnblogs.com/Geton/p/3662730.html
Copyright © 2011-2022 走看看