主题词:YUI AJAX 跨域
一、前言
AJAX的POST及GET方式提交相信已经被人们熟知了,且应用面非常广,在同一工程中实现起来非常简单。由于项目的需要在本项目中跨域是很正常的现象,如何实现在同一项目的不同域中实现提交就摆在我们面前了。
二、方法分析
1.ajax+webservice
这是一种比较常用的模式。WEBSERVICE中返回的是XML结构,ajax直接对XML进行操作.
2.ajax+wcf
fm3.0的中新增的wcf,对以上的模式进行了优化,允许返回json形式,这种形式跟今天探讨的理论可能是一样的,我对wcf也是刚刚学习内部机理还不是太了解,不敢妄加断言.
2.内嵌js实现方式
这是今天要讨论的。
众所周知,在浏览器中css和JS是允许跨域调用的,因为这种都是资源性文件,w3c是不会限制他们跨域的。这种方式是利用这种方式,在服务器端生成JSON代码,页面以调用JS的形式调用这个服务器端生成的JSON页面,以实现提交及接收返回值。
YUI中具体的实现方法可以参见YAHOO开发者社区。
三、YUI实现
为了比较实现方式,利用YUI制作了本域内AJAX提交及跨域提交两部分。
1. 制作HTML的调用页面
调用YUI基础JS:
<!--共通调用-->
<script type="text/javascript" src="JS/yahoo-min.js"></script>
<!--传统AJAX提交-->
<script type="text/javascript" src="JS/event-min.js"></script>
<script type="text/javascript" src="JS/connection-min.js"></script>
<!--跨域提交-->
<script type="text/javascript" src="JS/get-min.js"></script>
JS调用内容:
<script type="text/javascript">
//ajax成功处理
var handleSuccess = function(o){
alert(o.responseText);
};
//javascript成功处理
var handleJsSuccess = function(o){
alert(data[0].mess);
};
//失败处理
var handleFailure = function(o){
alert('connect service failt');
};
//传统ajax callback
var callback =
{
success:handleSuccess,
failure:handleFailure
};
//传统ajax post
function makeRequest_Ajax_Post(){
var postData = "a=b";
var request = YAHOO.util.Connect.asyncRequest('POST', "../Ajax.aspx", callback, postData);
}
//传统ajax get
function makeRequest_Ajax_Get(){
var request = YAHOO.util.Connect.asyncRequest('GET', "../Ajax.aspx?b=c", callback);
}
//跨域提交
function makeRequest(){
//此处url需要改为不在本域的地址,该页需要返回json数据
var request = YAHOO.util.Get.script("http://localhost:8313/yui_post_get_host/Json.aspx?a=b",
{ onSuccess: handleJsSuccess,
onFailure: handleFailure
});
}
</script>
调用控件
<input id="btnAjaxPost" type="button" onclick="makeRequest_Ajax_Post();" value="传统AJAX_POST提交" />
<input id="btnAjaxGet" type="button" onclick="makeRequest_Ajax_Get();" value="传统AJAX_GET提交" />
<input id="btnJson" type="button" onclick="makeRequest();" value="跨域提交" />
2.服务器端JSON生成:不分语言,不分平台。实现的方法很多,只要符合JSON的格式就可.
简单JSON示例:
var data = [{'mess':'ok'}];
四、总结
YUI是我比较喜欢的框架,原来用过一阵的EXT,感觉对页面的编辑上有些不自由。我个人感觉YUI从上手和自由度上要好一些,EXT在集成度上,快速实现界而UI上要好一些。
五、源码下载
http://files.cnblogs.com/delphiren/yui_post_get_host.rar
六、参考资料
http://developer.yahoo.com/yui/ YAHOO YUI社区
http://json.org/json-zh.html json介绍
本文章转自:http://www.cnblogs.com/delphiren/articles/1268671.html
分享到:
相关推荐
标题中的"yui.zip_YUI aj_ajax_ajax java_javascript_javascript YUI Ajax"指的是YUI(Yahoo! User Interface Library)库的一个版本,该版本重点强调了AJAX(Asynchronous JavaScript and XML)技术的使用,同时也...
标题中的"struts2 yahoo yui ajax plugin"指的是一个特定的插件,这个插件将Yahoo YUI库与Struts2框架整合,以支持使用Ajax技术进行异步数据交互。这个插件允许开发者利用YUI的强大的JavaScript功能来增强Struts2...
此外,YUI还提供了一些高级特性,如请求队列管理、跨域请求支持、数据缓存等。 在YUI_2.5.2这个版本中,包含了YUI 2系列的组件和示例。这个版本可能已经有些陈旧,但仍然可以作为学习YUI Ajax框架的基础。通过查看...
**Ajax(yui-slideshow)详解** Ajax,全称Asynchronous JavaScript and XML,是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提升了用户...
5. **Ajax交互(Ajax Interactions)**:YUI-EXT集成了YUI的Ajax功能,允许在不刷新页面的情况下与服务器进行异步通信。这使得用户界面能够实时更新,提高了用户体验。 6. **工具提示(Tooltips)**:YUI-EXT还提供...
6. **IO与Ajax** 在“io”模块中,YUI3提供了对异步数据请求的支持,如GET、POST等HTTP方法,这在构建Web应用时非常关键。开发者可以通过“yui3-master.zip”来学习如何进行高效的网络通信。 7. **响应式设计** ...
5. **IO模块**:YUI3的IO模块支持Ajax请求,包括GET、POST等多种HTTP方法,以及异步请求和JSONP跨域数据获取。 6. **动画模块**:YUI3的动画模块可以轻松创建复杂的动画效果,支持CSS属性、颜色、尺寸等多方面的...
7. **IO与Ajax**:提供了强大的网络通信功能,如XMLHttpRequest、JSONP、跨域请求等,方便与服务器进行数据交换。 8. **动画框架**:基于RequestAnimationFrame的高性能动画系统,支持多种动画效果和自定义动画。 ...
YAHOO YUI 中文文档 AJAX 详细 比较好用
2. **Ajax**:IO模块用于实现异步数据请求,支持JSONP、XHR等通信方式。 3. **表格与表单**:DataTable和Form模块提供表格和表单的高级处理,包括排序、过滤、验证等功能。 4. **布局与容器**:Panel、Overlay、...
- **Ajax通信**:YUI的Ajax组件支持异步与服务器进行数据交换,实现无刷新页面更新。 **2. YUI的可扩展性** YUI的设计非常注重模块化和可扩展性,开发者可以通过编写新的模块来扩展其功能。YUI的模块化结构使得代码...
7. **AJAX**:YUI的AJAX组件支持异步数据交换,使得网页可以在不刷新的情况下更新内容。 8. **动画效果**:YUI的Anim模块可以创建复杂的动画效果,增强了用户体验。 **YUI的示例** 压缩包中的示例文件展示了如何...
4. **Ajax支持**:YUI包含了Ajax组件,可以方便地进行异步数据交换,无需刷新整个页面就能更新部分内容,提升了用户体验。 5. **动画效果**:YUI的Animation模块提供了一系列方法来创建平滑的CSS属性变化动画,如...
是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两个创建时工具: YUI Compressor ...
《深入理解YUI扩展EXT——构建高效前端UI与Ajax应用》 YUI(Yahoo! User Interface Library)是由雅虎公司开发的一套开源JavaScript库,它为开发者提供了丰富的UI组件和功能,以帮助创建高性能、易用的Web应用程序...
9. **异步请求和Ajax**:YUI的IO组件处理Ajax请求,提供了一种简便的方式与服务器进行异步数据交换。 10. **国际化和本地化**:YUI的I18n模块支持多语言环境,帮助开发者构建全球化应用。 文件名“FTBBS_...
YUI 2.6.0r2版本在当时的JavaScript社区中占有重要地位,它提供了大量的可重用模块,涵盖了DOM操作、事件处理、动画效果、Ajax交互、CSS样式管理、数据处理等多个领域。这个版本修复了之前的一些已知问题,增强了...
《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...
yuicompressor-2.4.2.jar yuicompressor-2.4.7.jar jsZip.exe yuicompressor yui compressor js压缩工具 javascript压缩工具 css压缩工具 ------------------------------------ //压缩JS java -jar yui...
Yui 工具包利用DOM脚本来简化浏览器内的开发(in-browser devolvement),使用DHTML和AJAX的特性开发所有的Web程序。 动画(Animation):在你的页面中通过指定位置,大小,透明度或者页面元素的其他特性来创建一个...