`
bazhuang
  • 浏览: 149616 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AJAX的缺陷以及解决方案

阅读更多
目前我们正在考虑一个投放平台,可以是提供offer、广告、资讯等数据给其他应用使用。在其他应用中,用户只需要嵌入一段js代码即可展示内容:
<script language="javascript" type="text/JavaScript"> 
var pid= 'mm_10011550_0_0';
var s =0;
var n=5;
var tid ="ilike_stype_0001";
var rad= true;
var redkey = false;
var ts = false;
var show_desc = true;
var show_seller = false;
var title_color = '0000FF';
var desc_color = '030000';
var price_color = 'CC0000';
var seller_color ='E6E6E6';
var bg_color='FAD8D1';
var border_color='C52509';
var markId= 'test';
</script> 
<script language="javascript" src="http://*/ui/cm.js"></script>

在提供的这个cm.js中需要去获取我们服务器上提供的数据,然后通过js去把内容转换为html代码。

这个地方重点不是在js转换为html代码上,而是去获取服务器提供的数据。这里很容易想到的就是Ajax去获取内容了,但Ajax的缺陷就是不能跨域,而我们有很多需求是需要跨域,就是需要向外面投放内容。
AJAX必须是同域名访问,二级域名不同也不可以,如果是list.com.com,那么Ajax请求的url也必须是list.com.com,而不能是search.com.com。

Ajax的替代解决方案
所以需要提供另外一种方案,这里使用的是JSONP这种方案,关于JSONP的介绍,可以参考下面这个链接http://baike.baidu.com/view/2131174.htm?fr=ala0_1。
简单来说提供2种方式来供选择,一种是返回数据格式如下:
var ad_result={...};

这样在后续的js处理中可以直接使用ad_result这个变量;

另外一种是返回:
callback({...});

这里的callback是用户传入的参数。

第一种方式需要保证ad_result在后续处理之前没有被修改过,另外如果没有接口没有返回结果,那么还是需要判断ad_result是否已经存在,易用性上要多考虑一下。

第二种方式,这个callback是需要用户传入一个参数的,需要用户一定要指定,调用的url类似http://....&cb=callback,那么在Controller中需要接收这个cb参数,并返回给调用方。

第二种方式应该比较不错,我们不需要对script的加载是否完成做判断,如果已经完成了,会自动去调用callback函数。

后台返回的数据格式也就是以下4种:
(1)JSONP
(2)JSON
(3)HTML
(4)XML
上面的解决方案是针对JSONP的,HTML最简单了,嵌入一个iframe,其他的都不用考虑;JSON是可以更灵活的让同域名用户使用,适用范围比较狭窄,目前由于投放系统的域名和其他系统不一致,所以JSON的应用应该很少,除非其他应用在后台用httpclient获取该内容。xml应该也是通过httpclient来获取数据了。
分享到:
评论

相关推荐

    ajax缺陷的解决和自动xml分析器

    本篇文章将深入探讨Ajax的常见问题及其解决方案,并介绍一个名为"reformcore_xmlparser.js"的自动XML分析器,它在处理和解析XML数据时能提供帮助。 **Ajax的缺陷** 1. **浏览器兼容性问题**:虽然现代浏览器普遍...

    【卷一/共两卷】AJAX实战pdf高清版90M

    9.1.3 基于Ajax的解决方案 9.2 客户端架构 9.2.1 设计表单 9.2.2 设计客户端/服务器端交互 9.3 服务器端的VB.NET实现. 9.3.1 定义XML响应格式_ 9.3.2 编写服务器端代码 9.4 显示结果 9.4.1 遍历XML文档 9.4.2 应用...

    缺陷管理系统

    基于J2EE(Java 2 Enterprise Edition)平台构建的缺陷管理系统,利用Java的技术优势,提供了跨平台的解决方案,并且支持多层架构,可扩展性强,安全性高。 J2EE是一个开放源代码的Java平台,用于构建和部署企业级...

    AJAX实现基于WEB的文件上传的进度控制

    该解决方案主要依赖于AJAX(Asynchronous JavaScript and XML)技术,通过以下步骤实现: 1. **使用AJAX周期性地从Servlet轮询上传状态信息**:在用户提交文件的同时,客户端会通过AJAX向服务器发送请求,获取文件...

    AJAX开发简略.pdf

    - 浏览器兼容性的解决方案,确保AJAX应用能在不同的浏览器环境下稳定运行。 - SEO优化指南,帮助解决AJAX应用中搜索引擎优化的相关问题。 综上所述,AJAX技术通过异步数据处理和动态页面更新,极大地提升了Web应用...

    AJAX帮助文档

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术...然而,开发者在使用时也需要注意其带来的挑战,并采取相应的解决方案,以确保良好的用户体验和功能完整性。

    Ajax请求响应中用window.open打开新窗口被拦截的解决方法

    本文将探讨这个问题的原因以及几种可能的解决方案。 ### 问题描述与分析 当用户未直接点击链接或按钮时,例如在Ajax请求的回调函数中执行`window.open()`,浏览器会认定这不是用户主动的行为,从而拦截新窗口的...

    基于WebGL和AJAX的WEB3D应用研究——以在线3D协作交互式设计为例.pdf

    传统的WEB3D解决方案主要依赖Flash、Java3D以及SilverLight等技术。然而,上述技术都存在一个共同的缺陷:难以支持Web端GPU加速,因而难以胜任大规模复杂3D场景的渲染。 而WebGL的出现为解决这一难题提供了新的思路...

    结合AJAX与J2EE技术的WEB信息检索系统的设计与实现.pdf

    【标题】和【描述】提及的是一个基于AJAX(Asynchronous JavaScript and...综上所述,本文深入探讨了AJAX和J2EE在WEB信息检索系统中的应用,阐述了相关技术原理,提出了解决方案,并提供了实例来说明其设计和实现过程。

    软件缺陷管理系统 javaweb layui 毕设

    8. **文档与知识库**:系统可集成知识库功能,存储历史缺陷解决方案,供团队成员参考学习,减少重复劳动。 9. **沟通与协作**:提供评论、@提醒等功能,促进团队间的沟通,提高问题解决速度。 总的来说,“软件...

    Eclipse同SOA和Ajax的连接和整合

    Eclipse的RCP(Rich Client Platform)技术也在不断进化,为构建桌面应用提供了一种强大的解决方案。RCP允许开发者创建功能丰富的、多平台兼容的应用,而不依赖于特定的操作系统API,如Win32。随着Microsoft推动多...

    基于总线模型和Json的Ajax安全开发模型.pdf

    总结起来,基于总线模型和Json的Ajax安全开发模型提供了一个综合的解决方案,它将复杂的系统组件集成在一个统一的框架下,便于管理和实施安全策略。同时,Json的使用确保了数据交换的效率和灵活性,而XML的安全策略...

    基于AJAX的动态树状菜单的设计及实现.pdf

    为了解决这个问题,本文通过分析AJAX技术的特点,设计并实现了一种高效的动态加载树状菜单方案,该方案调用Web Service实现与远程数据库服务器的数据访问,并以数据库中数据关联为基础点,在客户端结合JavaScrip和...

    基于Ajax技术的Web树状菜单实现.pdf

    ### 基于Ajax技术的Web树状菜单实现:一种高效的数据展示方案 #### 引言 树状菜单作为常见的导航工具,在Web应用中扮演着关键角色,尤其在需要展示层级结构信息的场景中,如文件系统、产品分类、组织架构等。然而...

    struts2基础

    1. **简化开发**: Struts2提供了一套完整的解决方案,帮助开发者快速构建出结构清晰、易于维护的Web应用。 2. **模块化**: 支持将应用程序划分为多个模块,每个模块都可以独立开发和部署。 3. **表单处理**: 提供了...

    endeavour-mgmt-1.25 项目管理

    Endeavour软件工程管理工具(Endeavour Software Project Management)是一个胖客户端的开源项目项目管理解决方案。它可以通过管理迭代和增量开发帮助用户创建大型企业级系统。 目前Endeavour支持,开发用例,迭代,...

    _以HTML 5 CSS3 jQuery为基础的响应式布局网页设计探讨.pdf

    HTML5 技术可以提供媒体查询设计的解决方案,提高网页的适用性和响应速度。 四、响应式布局网页设计的智能化处理设计方法 响应式布局网页设计需要智能化处理设计方法来提高网页的响应速度和适用性。本文通过分析...

    PHP和MySQL Web开发第4版pdf以及源码

    1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 ...

Global site tag (gtag.js) - Google Analytics