Ajax--art-template + 调用天气接口

一.实现原理:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8
 9 </body>
10 </html>
11 <!--script标签如果指定一个非标准类型type属性,浏览器会把里面的内容识别成字符串-->
12 <script type="text/template" id="weatherTemplate">
13     <h2>城市:数据<%= currentCity %></h2>
14     <p>今天天气:<%= weather_data[0].weather %></p>
15     <p>明天天气:<%= weather_data[0].weather %></p>
16
17 </script>
18 <script src="lib/template-native.js"></script>
19 <script>
20     var objDate = {
21         currentCity: ‘北京‘,
22         weather_data:[
23             {
24                 "date": "周六 11月11日 (实时:9℃)",
25                 "weather": "晴转多云",
26                 "wind": "南风微风",
27                 "temperature": "10 ~ 0℃"
28             },
29             {
30                 "date": "周日",
31                 "weather": "多云转晴",
32                 "wind": "西风微风",
33                 "temperature": "11 ~ 0℃"
34             }
35         ]
36     };
37     //template("模版",数据对象)
38     var htmlStr = template("weatherTemplate",objDate);
39     console.log(htmlStr);
40     document.body.innerHTML = htmlStr ;
41 </script>

二.调用天气接口:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         *{
 8             margin: 0;
 9             padding: 0;
10             list-style: none;
11         }
12         .nav{
13             border: 1px solid #ddd;
14         }
15         .nav li {
16             float: left;
17             width: 200px;
18             text-align: center;
19         }
20         .nav li a{
21             text-decoration: none;
22         }
23     </style>
24 </head>
25 <body>
26 <button id="btn">无刷新请求</button>
27 <div class="nav">
28     <ul id="navIn">
29
30     </ul>
31 </div>
32 </body>
33 </html>
34 <script type="text/template" id="navTemplate">
35     <ul>
36         <%for(var i=0;i < resArray.length;i++){%>
37         <li>
38             <a href="<%=resArray[i].link%>">
39                 <img src="<%=resArray[i].src%>" >
40                 <p><%=resArray[i].text%></p>
41             </a>
42         </li>
43         <%}%>
44     </ul>
45 </script>
46 <script src="lib/jquery-1.12.2.js"></script>
47 <script src="lib/template-native.js"></script>
48 <script>
49
50     /**
51      *  $.ajax({});
52      *    url 服务器地址
53      *    dataType:
54      *    type: 请求类型
55      *    success :function(){
56      *      请求成功点后执行的函数
57      *     }
58      * */
59     $(‘#btn‘).click(function () {
60         $.ajax({
61             url:‘03nav_json.php‘,
62             dataType:‘json‘,
63             success:function (res) {
64                 console.log(res);
65                 // 如果数据是数组,默认数组没有名字,所以在模版引擎里无法找到数据
66                 //   解决方法: 传入一个对象{ 数据名称: 数组数据}
67                 var htmlStr = template(‘navTemplate‘,{resArray:res});
68                 $(‘.nav‘).append(htmlStr);
69             }
70         });
71     });
72
73 </script>

三.手机归属地接口查询:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <style>
 7         .tips{
 8             color:red;
 9         }
10     </style>
11 </head>
12 <body>
13 <h1>请输入电话号码查询号码归属地</h1>
14 <input type="text" name="phoneNum"  id="phoneNum"/><button>查询</button>
15 <span class="tips"></span>
16 <br/>
17 <div id="area">
18
19 </div>
20 </body>
21 </html>
22 <script type="text/template" id="areaTemplate">
23    <p> 您的号码归属地是:<%=province%></p>
24    <p> 您的服务商是:<%=carrier%></p>
25     <p>您号码服务名称是:<%=catName%></p>
26 </script>
27 <script src="lib/jquery-1.12.2.js"></script>
28 <script src="lib/template-native.js"></script>
29 <script>
30
31
32     $(‘button‘).click(function () {
33         $.ajax({
34           url:"http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel="+$(‘#phoneNum‘).val(),   // 查询手机归属地接口
35           dataType:"jsonp",
36           success:function (res) {
37               console.log(isEmptyObject(res));
38               if(!isEmptyObject(res)){
39                   var htmlStr = template("areaTemplate",res);
40                   console.log(htmlStr);
41                   $(‘#area‘).empty().append(htmlStr);
42                   $(‘.tips‘).text(‘‘)
43                   return false;
44               }else{
45                   $(‘.tips‘).text(‘请输入正确的电话号码‘);
46               }
47           } ,
48           error: function () {
49                 $(‘.tips‘).text(‘请输入正确的电话号码‘);
50           }
51        });
52     });
53
54     function isEmptyObject(e) {
55         var t;
56         for (t in e)
57             return !1;
58         return !0
59     }
60 </script>
时间: 2024-10-20 09:06:20

Ajax--art-template + 调用天气接口的相关文章

php 调用天气接口

前几天没事的时候,浏览博客看到了一篇免费天气接口的文章,然后调用了一下文章中提到的接口,自己琢磨了半天,把数据处理了一下,虽然现在用不到,但是说不定以后会用,所以打算记录一下,毕竟这也算是自己第一次在博客园里写出了原创的代码 (→_→) 进入正题 1.先放接口: 1.1 返回 json 形式 1.1.1 通过城市名(北京/北京市)获取当前城市当前温度及未来一周天气预报 (Json数据) :包含台湾的主要县市 接口:http://wthrcdn.etouch.cn/weather_mini?cit

调用天气接口获取天气预报

最新做到一个小练习,涉及到天气预报的温度获取,首先感谢众多前辈提供的大量demo,但是美中不足在于,之前大多数demo所使用的天气接口基本上失效,或者收费了.偶然之间找到一个天气的接口 http://doc.tianqiapi.com/603579 (如有侵权请联系作者删除),截图如下: 几近完善的一个接口及例子,感谢 https://www.tianqiapi.com/ 此网站所提供的免费接口.同时此接口还提供了JS调用实例,所以基本上直接引用就可以得到所需要的温度范围了 $(function

解决ajax跨域调用C#接口

第一个方法,通过jsonp方式调用 缺点:不过只支持get方式请求,所以携带的数据有限制.如果需要提交大量的数据就不行了. 第二个方法,使用cors方式:要在C#后台代码里增加返回头respose.addHeader("Access-Control-Allow-Origin","http://test.com");    如果是公共的则返回*即可. 优点:可以使用post请求 缺点:只支持部分浏览器

利用C++调用天气webservice-gSOAP方法

首先需要下载一个gSOAP工具包 下载路径为:https://sourceforge.NET/projects/gsoap2/ 至于有关于gSOAP的一些用法和包含的文件的说明可从官网查看:http://www.genivia.com/dev.html. 下载和使用gSOAP生成一些库文件提供给C++工程使用: 解压gsoap文件夹,此处解压的是gsoap-2.8文件夹,放在E盘 打开E:\gsoap-2.8\gsoap\bin\win32文件夹 创建一个文件名为wsmap.dat 以文本形式写

PHP调用API接口实现天气查询功能

天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口.百度天气预报接口.google天气接口.Yahoo天气接口等等. 1.查询方式 根据地名查询各城市天气情况 2.请求URL地址http://route.showapi.com/9-2 3.接口参数说明: 一.系统级参数(所有接入点都需要的参数): 二.应用级参数(每个接入点有自己的参数): 4.返回参数 以JSON格式返回结果 1)系统级参数(所有接入点都会返回的参数) 2)应用级参数(系统级输出参

调用ajax 跨域调用接口

//ajax 跨域请求数据 function ajaxType (){ $.ajax({ url: "http://127.0.0.1:9090/spring_mvc/HttpClient/ajaxType.do?jsonpCallback=?", type: "GET", data: { pwd: encodeURI('周'), username: 'tl' }, dataType: "jsonp", success: function(dat

thinkjs学习-this.assign传递数据和ajax调用后台接口

在页面加载时,就需要显示在页面上的数据,可以在后台使用this.assign赋值,在前台通过ejs等模板获取:用户点击按钮,或者触发某些事件和后台进行交互时,就需要用到ajax调用后台接口.本文通过一个例子讲述这两种方法的前后台实现.(方便起见,使用jQuery封装的ajax)' (ps:ajax调用后台接口的情形通常是用户触发事件,给后台传递一些前台的数据,然后后台根据这些数据进行相关操作,再返回前台一些数据.举个表单提交的例子,用户点击提交按钮之后,将填写的表单信息传递个后台,后台对传过来的

Ajax调用WebService接口样例

在做手机端h5的应用时,通过Ajax调用http接口时没啥问题的:但有些老的接口是用WebService实现的,也来不及改成http的方式,这时通过Ajax调用会有些麻烦,在此记录具体实现过程.本文使用在线的简体字转繁体字WebService来演示,WebService地址为http://www.webxml.com.cn/WebServices/TraditionalSimplifiedWebService.asmx?wsdl. 1.使用SoapUI生成Soap消息 使用SoapUI可以很方便

WebApi接口 - 如何在应用中调用webapi接口

简单做个webapi(查询+添加)接口 首先,我们需要有一个webapi接口项目,我这里以前面WebApi接口 - 响应输出xml和json文章的项目来构建本篇文章的测试用例:这里新建一个 DbData 数据源类,主要用来做数据存储和提供查询列表数据及添加数据方法,具体代码如:  1 public class DbData 2     { 3         public static DbData Current 4         { 5             get 6