`
sheva.wen
  • 浏览: 39042 次
  • 性别: Icon_minigender_1
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

一个Flex做的天气预报widget

    博客分类:
  • Flex
阅读更多

弄了一个天气预报的widget,有些心得在里面,拿出来分享。

最终的效果:

 

使用的技术:

Flex ,asp.net,flash

关于天气数据:

本人是在气象局工作的,但对于气象局的公众服务其实相当不满,怎奈自己是个小兵,能做的只是积极献言献策,试图改变“上面”的思维。就拿数据服务来说,部门内部不论软硬件环境都很不错,至少把天气预报通过某种途径(WebService,mashup,rss等)提供借口是没有问题的。在做这个widget是才发现,根本没有直接的接口可寻,翻了翻一些大站的天气服务,总算找到一个提供Json数据的(也许人家根本不是主动提供的),就不透露是那个站了smile

 

一些技术细节:

跨域访问数据问题

既然天气数据来自某网站,自然存在跨域问题,服务器不在你手上,自然就不是crossdomain.xml能解决的了。这个问题参考了noahgenius 关于使用asp.net作数据代理的文章,简单说就是使用自己的服务器将数据获取到,然后提供给客户端。

 

Flash的中文编码问题

这个问题有两部分,一个是单纯的中文显示问题,这个有好些方法,在initialize方法中添加“"flash.system.System.useCodePage=true”较为简单。另一个是flash生成连接url的中文编码问题,可以在要传递的中文参数(城市名称)上使用encodeURI方法就可以了。当然.net中也会涉及这个问题。

 

Flex处理Json数据的问题

Json这么新潮的数据格式,Adobe不会不考虑,提供了专门的类文件(我会防到附件里)来处理,com.adobe.serialization.json这是他的名称空间。使用方法参考岩屋的文章《Flex用JSON处理返回的数据》。

.net的WebClient缓存问题

如果每次客户端访问,服务器代理都会访问天气数据网站并下载数据,那绝对是可悲的。气象预报工作我是有一定了解的,中国的天气预报一般在北京时间8时会发布一次,包括24小时预报、48小时预报、72小时预报,下午4时会视上个预报周期后这12小时的情况,发布一次更正预报。我说上面的意思是说,其实天气预报信息一天24小时之内只会发布两次,那么最佳解决方案当然是缓存天气预报数据。我们现在是基于.net实现的,就说说.net的WebClient的缓存处理,这个你可以参考官方文档关于WebClient.CachePolicy 属性的描述。其实就是把WebClient的缓存策略(RequestCachePolicy )设置成Revalidate。

MSDN 写道
Revalidate 如果时间戳与服务器上的资源的时间戳相同,则使用资源的缓存副本满足请求;否则从服务器下载资源,将资源展示给调用方然后存储在缓存中。

 

这样服务器还是会到目标服务器上看看的,但只是去查看该文档的最后修改时间,如果没有更新,就不会获取整个数据实体。如果用Jakarta Commons

的HTTPClient的话,也是一样的道理。

  • forecast.net.rar (1.6 KB)
  • 描述: .net代理部分源码,webconfig里有玄机哦
  • 下载次数: 200
分享到:
评论
3 楼 yawen 2008-12-23  
,很不错啊!
2 楼 zhanghan 2008-12-03  
1 楼 duker 2008-01-09  

相关推荐

    flex 全球天气预报小程序(自己开发)

    这个标题暗示了这是一个使用Flex技术开发的小程序,专门用于提供全球范围内的天气预报服务。Flex是Adobe开发的一个开源框架,主要用于构建富互联网应用程序(RIA),它允许开发者使用MXML和ActionScript语言创建交互...

    Flex实现天气预报服务

    在本项目中,“Flex实现天气预报服务”指的是利用Flex的技术来创建一个应用,该应用能够通过调用外部的Web服务接口获取并显示天气预报信息。 Flex中的WebService组件是用于与SOAP(Simple Object Access Protocol)...

    FLEX AIR天气预报查询

    【标题】"FLEX AIR天气预报查询"是一个基于Adobe Flex和Adobe AIR技术开发的应用程序,主要功能是通过WebService接口获取并展示天气预报信息。这个小程序是开发者为了学习Flex与Web服务之间的通信机制而创建的,同时...

    使用Flex调用webService开发一个天气预报服务

    在本文中,我们将深入探讨如何使用Adobe Flex调用Web Service来开发一个天气预报服务。Flex是一种基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建交互性强、用户体验良好的...

    ruby+flex实现天气预报

    本文介绍了如何使用Ruby和Flex技术来实现一个天气预报应用,展示了RIA(Rich Internet Applications)开发的优势。Ruby是一种动态、灵活的编程语言,常用于后端业务逻辑处理,而Flex则是一种用于构建富客户端应用的...

    flex天气预报源码

    这款源码利用Flex强大的图形用户界面构建能力,为用户提供了一个直观且互动的界面来查看天气预报。 在这款源码中,`httpserver`扮演了关键角色,它是用来从互联网上抓取XML数据的。HTTP服务器是网络通信的基础,...

    Flex调用Webservice实现天气预报

    Flex是一种基于Adobe Flash Player或...通过以上步骤,我们可以构建一个功能完整的Flex应用,用户可以通过它查询世界各地的天气预报。这个过程展示了Flex作为RIA开发工具的强大之处,以及其与Webservice集成的灵活性。

    Flex开发的天气预报APP

    flex开发的跨平台应用app,天气预报。 用的是flex4.6 SDK开发的。

    flex使用web服务写的天气预报

    标题中的“flex使用web服务写的天气预报”表明这是一个使用Adobe Flex技术来开发的Web应用程序,其功能是获取并展示天气预报信息。Flex是一款强大的富互联网应用程序(RIA)框架,允许开发者构建交互性强、用户界面...

    PHP+Flex+amfphp实现天气预报

    标题 "PHP+Flex+amfphp实现天气预报" 指出的是一个使用PHP作为后端服务器语言,Flex作为前端用户界面技术,并结合amfphp框架来构建的天气预报应用程序。这个项目可能涉及到以下几个关键知识点: 1. PHP:这是一种...

    天气预报flex+arcgis完整代码

    这个"天气预报flex+arcgis完整代码"项目结合了这两项技术,旨在创建一个交互式的Web应用程序,用于展示和预测天气状况。通过使用Flex,开发者可以构建用户界面,提供丰富的图形元素和动态交互功能。而ArcGIS则提供了...

    flex天气预报

    flex 天气预报展示 源码自己看吧 源码自己看吧

    天气预报flex

    flex 天气预报 使用工具flash Builder swc文件为天气特效

    这是一个flex做的管理系统

    描述中的“逆向思维做的一个管理系统”可能指的是在设计和实现过程中采用了非传统或创新的方法。逆向思维通常意味着从结果出发,反向推导出解决问题的过程。这可能意味着该管理系统在用户体验、数据处理或者功能布局...

Global site tag (gtag.js) - Google Analytics