| 系统系 | - 操作系统 - 工具软件 - 病毒安全 - Vista专区 | WEB2.0 | - 奇趣 - 发现分享 - 评论员文章 - 沈阳网站制作 | 视 频 | - 体育 - 娱乐 - 科技 - 教程 |
| 办公系 | - Word - Excel - Powerpoint - 圣诞祝福 | 动画系 | - Flash - Ascript - Flex - MsE Design 教程 | 编程系 | - Asp - Asp.Net - Php - Jsp、Java - CGI/perl |
| 艺术系 | - 酷赏 - 工业 - 建筑 - 界面 - 平面 - 视觉 | 网站系 | - HTML/Xhtml - Js、Ajax - Css - XML、XSLT | 下 载 | - 图形图像 - 多媒体 - 系统办公 |
为搜索按钮绑定处理方法:
$(function() {
$('#btnSearch').click(function() {
//这里调用最关键的Search方法,取数据
Search();
});
});
下面来看最关键的Search部分,调用API获取结果数据:
$(function() {
function Search() {
//获取用户输入的搜索词,并替换空格为“+”
var searchTerms = $('#txtQuery').val().replace(" ", "+");
//将接口需要的所有参数封装为数组
var arr = [AppId, Query + searchTerms, Sources, Version, Market, Options, "Web.Count=" + WebCount, "Web.Offset=" + WebOffset, "JsonType=callback", "JsonCallback=?"];
//将参数数组拼装成url串,最终得到bing的URL Service的请求URL
var requestStr = "http://api.search.live.net/json.aspx?" + arr.join("&");
//通过jquery ajax调用bing json数据接口
$.ajax({
type: "GET",
url: requestStr,
//指定数据类型为jsonp
dataType: "jsonp",
//调用成功后返回数据对象,并调用处理方法
success: function(msg) {
SearchCompleted(msg);
},
error: function(msg) {
alert("Something hasn't worked\n" + msg.d);
}
});
}
});
我们看到在使用jquery ajax时,指定数据类型为jsonp,jsonp是一种可跨域访问的协议,我对其也不是非常清楚,可以在这里了解一下。另外 CSS9.NET 也计划在后面的文章中讲解json的相关知识,敬请关注。
再来看获取到数据后的UI处理,主要包括显示结果和显示错误信息两部分:
function SearchCompleted(response) {
//检查结果数据对象中的Errors对象,判断是否发生错误
var errors = response.SearchResponse.Errors;
if (errors != null) {
// 发生错误的话调用错误信息显示方法
DisplayErrors(errors);
}
else {
// 没有错误的话调用结果信息显示方法
DisplayResults(response);
}
}