天气信息查询案例| 学习笔记

简介: 快速学习天气信息查询案例。

开发者学堂课程【Ajax 前端开发入门与实战天气信息查询案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8554


天气信息查询案例

 

天气查询案例

接口地址如下:

地址htp:// cdn.weather.hao.360.cn/api weather_info.php
作用描述:获取天信息
请求类型:Get 请求
参数: app:hao360 固定参数
code: 城市的编号( 101010100北京,101020100上海,    101280101广州,101280601 深圳)
_jsonp: 回调函数名称
返回数据格式: jsonp 格式
返回字段说明: area 地区信息
pm25: pm2.5 数据

pubdate:数据发布日期

Pubdate:数据发布时间

time:时间戳

weather:天气信息

date:时间

day:白天

night:黑夜

dawn:黎明

地址接口是 jsonp 格式的接口,需要通过跨域的技术解决方案来获取相关的数据。

简单的通过浏览器进行一个接口地址的访问,打开浏览器输入地址后将相关的参数不全。

第二个参数 code,把参数进行拼接通过”&“拼接,code=101010100(北京城市的编码),除此之外还需要 _jsonp(决定回调函数名称,它的本质是由服务器返回一个函数调用)再进行拼接 _jsonp=abc,如下图表示:

回车后的结果如图得到一个数据,这个数据关于 abc 的一调用方法

image.png

如把 abc 改为 haha ,就是 haha 的调用方法,如图:

image.png

因此服务器就是通过 _jsonp 来得到 haha 这个字符串,将我们相关的数据信息以函数调用的方式传递给前端。

可以把上图的数据进行格式化,复制上图 _jsonp 格式字符串放到 Sublime 粘贴上去后按快捷键 Ctrl+Alt+O 可以把相关数据进行格式化,进行格式化要把最前面haha 去掉因为只有括号里面才是 _jsonp 格式字符串,

把特殊符号”\u5317\u4eac转译成中文“北京”。

在 Sublime 中按的快捷键需要安装 Pretty JSON 这个插件。

安装插件的步骤:

点击 Package Control 后再点击 Instali Package ,稍等片刻弹出一个输入框,在输入框中输入 Pretty JSON 进行安装。

第二种方式可以借助互联网,在百度搜索 json 数据格式化点击进去

复制代码粘贴进输入框点击校验也能得到 json 数据格式化的操作。

image.png

选择城市后点击查询按钮,就可以将天气信息查询出来,就可以展示在“info”的

下边。

打开浏览器输入 www.zhangsan.com。 

点击 08 weather/ 后进入

再点击 get weather.html 就会出现如下界面:

image.png

点击城市进行查询就可以获得相关天气信息,天气信息是分日期的,每个日期下面都有它的白天、夜间、黎明的信息。将这里的信息获得读取信息的获取操作。 

代码如下:

<!DOCTYPE html>

<html lang="en">

<head><meta charset="UTF-8">

<title>获取天气信息</title>

<script type="text/javascript" src=”jquery.js”>

</script>

<script type="text/javascript” src=”template.js”>

</script>

<script type="text/html” id=”weatherTemplate”>

{{each weather as value i}}

<div><span>{{value.date}}</span>

<ul><li>天天:{{value.info.day[1]}}</li>

<li>白温度:{{value.info.day[2]}}</li>

<li>白天:{{value.info.day[3]}}</li>

<li>白天风:{{value.info.day[4]}}</li>

</ul><ul><li>夜间天:{{value.info.night[1]}}</li>

<li>夜温度:{{value.info.night[2]}}</li>

<li>夜间风:{{value.info.night[3]}}</li>

<li>夜间风:{{value.info.night[4]}}</li>

</ul>

{{if value.info.dawn}}<ul><li>黎明:{{value.info.dawn[1]}}</li>

<li>黎明温度:{{value.info.dawn[2]}}</li>

<li>黎明:{{value.info.dawn[3]}}</li>

<li>黎明:{{value.info.dawn[4]}}</li>

</ul></div>

{{/each}}

</script>

$(function(){

$(”#query”.click(function(){

//将用户所选择的城市信息的天气预报情况查询出来

var code = $("#city" ).val();

Console.log(code);

$.ajax({

Url:”htp:// cdn.weather.hao.360.cn/api weather_info.php

data:{

app:”hao360”,

code:code

},

jsonp:”_jsonp”

dateType:”jsonp”

success:function(data){

console.log(data);

var html = template(“weatherTemplate”,date);

$(“#info”).html(html);

}

});

});

});

<style type="text/css">

#containerfwidth:400px ;

min-height:300pх;

background-color:lightgreen;

margin:auto;

padding:10px;text-align:center;}

ul{

list-style:none;

text-align:left;

}</style>

</head><body>

<div id = ”container”>

<select id="city">

<option value="101010100">北京</option>

<option value="101020100">上海</option>

<option value="101280101">广州</option>

<option value="101280601">深圳</option>

</select>

<input type=”button” value=”查询” id=”query”>

<div id=”info”>

</div>

</div>

</body>

</html>

Val 代表的含义,他所代表的含义是我们所选择的 option 所对应的 value 值,option 所对应的 value 值就是 select 元素的 value 值

<option value="101010100">北京</option>

<option value="101020100">上海</option>

<option value="101280101">广州</option>

<option value="101280601">深圳</option>

</select>

将 code 用户所选择的城市信息传递到 url 中城市所对应的天气。Url 的地址是在接口文档中所体现出来的地址。

放到代码当中,业务逻辑参数 hao360; 城市编码。

dataType 不能忘记,必须得是 jsonp 我们才可以获取到相关的数据

success:function(data){

console.log(data);

html 片段生成,片段生成放在 info下面

两个参数 dateType 一定要是 jsonp;

第二个就是 jsonp 所指定的值,我们服务器就是通过这个值来获取到回调函数的名称。

相关文章
|
人工智能 自然语言处理 Java
使用通义灵码插件提高开发效率
【2月更文挑战第2天】 通义灵码是阿里云开发的一个编码助手,基于AI大模型,提供代码智能生成,智能问答等功能,旨在加快编码,提高开发效率。
2431 3
使用通义灵码插件提高开发效率
|
存储 算法 C语言
C库函数详解 - 内存操作函数:memcpy()、memmove()、memset()、memcmp() (一)
`memcpy()` 和 `memmove()` 是C语言中的两个内存操作函数。 `memcpy()` 函数用于从源内存区域复制指定数量的字节到目标内存区域。它不处理内存重叠的情况,如果源和目标区域有重叠,结果是未定义的。函数原型如下: ```c void *memcpy(void *dest, const void *src, size_t num); ```
1319 6
|
API
全球天气预报1天-经纬度版免费API接口教程
该接口用于获取全球任意地区的天气信息,需提供经纬度参数。支持POST和GET请求,返回包括天气、气温、气压、湿度等详细信息。详情及示例参见API文档。
963 4
|
设计模式 JavaScript 前端开发
【Vue3】4个比较重要的设计模式!!
【Vue3】4个比较重要的设计模式!!
|
搜索推荐 机器人 数据处理
基于大语言模型的 FireRedTTS 语音合成系统
【10月更文挑战第3天】近年来,随着人工智能技术的发展,基于大语言模型的语音合成系统备受关注。FireRedTTS 系统由郭浩瀚等人提出,旨在满足多样化的语音合成需求。该系统分为数据处理、基础系统和下游应用三部分,通过高质量数据集和语义感知架构生成高保真语音信号。其应用场景包括配音和聊天机器人,能够实现零样本语音克隆和可控类人语音合成,提供自然且个性化的交互体验。然而,系统仍面临计算资源和完全自然语音合成等方面的挑战。[了解更多](https://arxiv.org/abs/2409.03283)
1097 3
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2522 6
【超全详解】Maven工程配置与常见问题解决指南
|
存储 NoSQL Ubuntu
如何安装和使用 Redis
如何安装和使用 Redis
224 0
|
安全 Linux
在Linux中,删除一个文件,删不掉是什么原因?
在Linux中,删除一个文件,删不掉是什么原因?
|
存储 人工智能 运维
这间云端的教室,为何获得全球K12顶级大奖
这间云端的教室,为何获得全球K12顶级大奖
339 1
|
Java 应用服务中间件 Maven
IDEA使用Tomcat
IDEA使用Tomcat
240 0

热门文章

最新文章