第十四章 集成Dojotoolkit(Ajax框架)

Dojo Toolkit 1.2.0 完整前端开发解决方案解析 本文还有配套的精品资源,点击获取 简介:Dojo Toolkit 1.2.0 是一个强大的JavaScript库,用于创建高性能和跨平台的Web应用程序。该版本整合了Dojo核心、Dijit UI组件库以及DojoX扩展项目,形成了一个全面的前端开发工具包。Dojo核心提供工具和API,优化了性能,增强了浏览器兼容性,并引入了AMD模块加载机制。Dijit带来了丰富的用户界... 阅读详情

第十四章 集成Dojotoolkit(Ajax框架)

 

Struts2内置对dojotoolkit的支持

@TODO 基于Ajax标签做更详细的使用讲解,由于dojo ajax标签在struts2中还处于试验阶段,所以我们主要讲解dojo在不使用struts2内置功能的情况下怎么和struts2结合使用。

 

Dojotoolkit介绍

Dojotoolkit是当前比较流行的JavaScript框架,dojo主要提供了以下功能:Java Script Web组件(例如Tree,Grid,Button,Menu等),事件处理框架,Ajax异步调用等功能,非常好用。

Dojo现在主要有两个版本:

0.4.3 现在流行的版本,优点是,功能非常强大,非常稳定,缺点是类库本身比较低,执行效率较低

0.9 beta是新的版本,是为了保留0.4.3的有点同时提升性能而重写的一个版本,但是现在还处在beta阶段,bug相会还比较多。但是0.9系列绝对是将来的发展方向。

 

我们主要以0.9 beta版本为讲解对象,主要讲解以下内容:Widget组件,事件处理,Ajax等功能。但是情大家注意,dojo的功能远不止这么多。

 

Dojo安装

1 从下述网站下载dojo0.9 beta压缩文件

http://dojotoolkit.org/downloads

2 在你的Web项目目录中建立一个名字叫做js的目录(名字任意,这里叫js)

3 将压缩文件在上面建立的目录中解压缩,得到如下文件结构:


4 打开浏览器,在地址栏中输入如下内容:

  http://hostname:port/js/dojo-0.9.0beta/dijit/themes/themeTester.html

如果看到如下页面说明安装成功:

themeTester.png

 

Dojo Widget 组件

我们回头看/themeTester.html 画面,上面的组件要比HTML默认的组件漂亮很多。他们都是使用dojo的widget(又叫dijit)来完成的。

Dojo widget在目录dijit中。

 

下面我们使用一个小例子还逐步的说明dijit的使用方法,通过如下步骤,我们将todo的insert画面改编为dijit组件。

 

我们有一个小小的Todo输入的页面,静态的效果如下:


这里有很多地方不是很方便,例如:

1 日期能不能出现一个日历选择对话框,只要选择就好?

2 日期能不能自动校验,例如如果输入,2007/02/29可以判断为错误日期?

3 时间需要校验,需要校验格式(HH:mm:ss)和数字内容例如不会有25:89:60。

4 下拉列表能不能支持手工编写?能不能支持根据已经输入的值自动过滤选择项?

5 能否让系统提示必须填入项目?

 

通过使用dojo的dijit组件这些都可以做到,并且dijit组件有两种使用方式:标签和JS编程动态实现。

无论那种方式实现都需要了解一些基本的步骤:

第一步,由于dojo是JavaScript编写的,所以第一步必须首先引用dojo框架的JavaScript,同时dojo提供了一些初始化配置,可以在引用dojo的时候同时配置,代码如下:

<script type="text/javascript"

    src="<%= request.getContextPath()%>/dojo-0.9.0beta/dojo/dojo.js"

    djConfig="isDebug: true, parseOnLoad: true">

</script>

 

其中src指向的是dojo在web项目中的存放路径。

djConfig是dojo追加的自定义属性,在HTML标准里并没有。使用djConfig可以做一些基本的配置,isDebug表示了当前页面中使用的dojo内容是否处在调试状态,在调试状态可以输出更多的内容,一般开发的时候我么选择true。parseOnLoad表示所有的dijit组件是否在html页面装载的时候自动的做展现(Render)处理,使用dijit组件的时候我们选择true,没有使用的时候使用false可以获得更好的性能。

第二步,引用需要使用的dojo类,这一步有些像Java中的import,注意添加引用的类会增加页面加载是JavaScript的下载量,所以应该尽量的精简引用的dojo对象。代码为:

<script type="text/javascript">
        dojo.require("dijit.form.ValidationTextbox");
        dojo.require("dijit.form.DateTextbox");
        dojo.require("dijit.form.ComboBox");
        dojo.require("dijit.form.Button");
        dojo.require("dijit.form.Textbox");
        dojo.require("dijit.form.NumberTextbox");
        dojo.require("dijit.form.CurrencyTextbox");
        dojo.require("dojo.currency");
        dojo.require("dojo.date.locale");
        dojo.require("dojo.parser");
</script>

上述的代码说明了我们需要在后续的代码中使用的dojo组件。

 

第三步,引用需要使用的CSS文件,由于dojo使用CSS实现了主题的概念,所以我们在使用dojo的时候一定要选择合适的主题。代码为:

<style type="text/css">
@import "/teamware/dojo-0.9.0beta/dojo/resources/dojo.css";
@import "/teamware/dojo-0.9.0beta/dijit/themes/dijit.css";
@import "/teamware/dojo-0.9.0beta/dijit/themes/tundra/tundra.css";
</style>

当然,也可以加入自己的内容,自定以主题。默认的主题时tundra主题。

另外需要注意,使用主题的时候需要在html的body元素上使用class属性,代码为:

<body class="tundra">

 

第四步(标签),使用dojo的dijit组件。

所有的组件都有一个dojo自定义的属性dojoType,dojoType决定了这个组件的dijit类型。例如:
 
日期组件
<input id="startDate" type="text" name="todo.startDate" 
        class="medium" value="2005-12-30"
        dojoType="dijit.form.DateTextbox"
        constraints={min:'2004-01-01',max:'2006-12-31'}
        required="true"
        promptMessage="mm/dd/yyyy"
        invalidMessage="Invalid date. Use mm/dd/yyyy format." />

这里dojoType=”dijit.form.DateTextbox”,表示这个组件的类型为DateTextbox类型,具体表现形式为:

 

时间组件:

<input id="startTime" type="text" name="todo.startTime" 
        class="medium" value="5:45:00 pm"                             dojoType="dijit.form.ValidationTextbox"
        validator="dojo.date.locale.parse"
        constraints={formatLength:'medium',selector:'time'}
        trim="true"
        required="true"
        invalidMessage="Invalid time." />

 

具体表现形式为:

 

第四步(JS编程动态实现),使用dojo的dijit组件。

在使用Struts2的过程中,为了方便操作,我们一般使用Struts2的内置标签,例如:<s:text/>等。但是使用这些标签有一个问题,这些标签都是Struts2的标签,在定制这些标签的时候没有考虑到dojo,所以这些标签中不能使用dojoType属性,所以要想在Struts2中要想使用dojo,就得:要么放弃这些好用的Struts2标签,要么,就是我们要讲的使用JS动态的使用dojo。

例如,我们有了如下的JSP页面(只讲述form部分),其中使用了struts2标签:

<s:form action="insert" namespace="/todo">

    <s:textfield id="startDate"

name="todo.startDate" label="Start Date" />

    <s:textfield id="startTime"

name="todo.startTime" label="Start Time" />

    <s:textfield id="endDate"

name="todo.endDate" label="End Date" />

    <s:textfield id="endTime"

name="todo.endTime" label="Emd Time" />

    <s:select list="%{#{'完成':'完成','未完成':'未完成'}}"

name="status" id="status" label="Status">

</s:select>

    <s:select list="%{#{'高':'高','中':'中','低':'低'}}"

name="priority"

       id="priority" label="Priority">

</s:select>

    <s:select list="%{#{'个人':'个人','商务':'商务'}}"

name="category"

       id="category" label="Category"></s:select>

    <s:textfield id="title"

name="todo.title" label="Title"></s:textfield>

    <s:textarea id="content"

name="todo.content" label="Content" cols="20"

       rows="10"></s:textarea>

    <s:submit id="insertButton" label="insert" />

</s:form>

 

那么我们如何使用JavaScript来动态的使用Dojo呢?

基本原理如下:

(1)      构造组件需要使用的dojo属性

(2)      找到需要套用dojo组件的HTML 元素,使用前面定义的属性建立新的替代组件,

 

例如,现在要将

<s:textfield id="startDate"

name="todo.startDate" label="Start Date" />

替换为dijit.form.DateTextbox类型,代码为:

var paramsStartDate = {

       required: "true",

       constraints: {selector: "date", formatLength: "short",

datePattern: "yyyy-MM-dd", timePattern: "HH:mm:ss", locale: "zh-cn"}

}

var startDateText = new dijit.form.DateTextbox(paramsStartDate,

                                   document.getElementById("startDate"));

首先我们定义了一个Map型的对象paramsStartDate用来存储我们在构建dijit组件时使用的属性和值。之后我们使用dijit.form.DateTextbox的构造方法来创建dojo类型的组件。

但是需要注意一点,上述代码必须在HTML页面load的时候执行,否则无法正常创建dojo组件,这里我们使用了dojo对象的addOnLoad方法吧这段代码加入到HTML页面load时运行的代码中。全部的JavaScript代码如下:

<script type="text/javascript">

       dojo.addOnLoad(

              function () {

                    

                     var paramsStartDate = {

                            required: "true",

                            constraints: {selector: "date", formatLength: "short",

datePattern: "yyyy-MM-dd", timePattern: "HH:mm:ss",

locale: "zh-cn"}

                     }

                     var startDateText = new dijit.form.DateTextbox(paramsStartDate,

                                   document.getElementById("startDate"));

                    

                     /* init start time */

                     var paramsStartTime = {

                            value: "08:30:00",

                            validator: dojo.date.locale.parse,

                            constraints: {formatLength: "short", selector: "time",

timePattern: "HH:mm:ss"},

                            trim: "true",

                            required: "true",

invalidMessage: "Invalid time. Use HH:mm:ss where HH is 00 - 23 hours."

                     }

                     var startTimeText =

                            new dijit.form.ValidationTextbox(paramsStartTime,

                                   document.getElementById("startTime"));

             

                     /* init title */

                     var paramsTitleText = {

                            required: "true",

                            promptMessage: "Enter a Title"

                     }

                    

                     var titleText =

                            new dijit.form.ValidationTextbox(paramsTitleText,

                                   document.getElementById("title"));

                    

              }     

       );

</script>

  

 
Dojo事件处理
传统的使用JavaScript Event的方式和dojo.connect的方式
JavaScript中使用事件的方式为:
<script type="text/javascript">
    function foo() {
       alert("Hello!");
    }
</script>
 
<button id="firstButton" onclick="foo();" >Hello!</button>
 
上述代码表示firstButton被点击(onclick)的时候,触发foo()方法。
 
使用上述方式很简单,但是存在不好的地方,所有的画面表示内容(例如<button>标签)会和事件处理(onclick=”foo();”)关联起来。当画面事件处理比较简单的时候,这个缺点体现不出来,但是当画面时间比较多,并且经常需要调整JavaScript方法和表示内容的时候就会暴露出来修改比较困难的问题。
 
Dojo.connect方法
可以使用connect将JavaScript方法和表示组件联合起来,例如:
dojo.addOnLoad(
    function() {
       dojo.connect(dojo.byId("firstButton"), "onclick", foo);
    }
);
上述的代码表示将firstButton的onclick事件和foo方法联系起来,当firstButton被点击的时候会触发foo方法。
这里就解决了画面表示内容(例如<button>标签)和事件处理之间关联的问题。我们可以在onLoad方法内部将所有的关联链接起来。
 
Event Object 说明
我们接着dojo.connect方法说,能不能在JavaScript方法内部看到事件的详细信息?
我们把事件的相关信息认为Event Object对象,例如,在做方法的时候,我们可以使用一个dojo的内置对象叫做EventObject
 
EventObject属性:
event.target —  触发事件的HTML元素(the element that generated the event)
event.currentTarget — 当前的Target(the current target)
event.layerX — 跟currentTarget相关的X坐标( the x coordinate, relative to the
event.currentTarget)
event.layerY — 跟currentTarget相关的Y坐标( the y coordinate, relative to the
                                                                                             event.currentTarget )
event.pageX — 当前View Point的X坐标(the x coordinate, relative to the view port)
event.pageY — 当前View Point的Y坐标the y coordinate, relative to the view port
event.relatedTarget — 对于onmouseover and onmouseout 时间,指鼠标进入或者退出的对象。(For onmouseover and onmouseout, the object that the mouse pointer is moving to or out of)
event.charCode — 针对于keypress时间表示key code( For keypress events, the character code of the key pressed )
 
EventObject方法:
event.preventDefault — 阻止了时间的默认行为( prevent an event's default behavior (e.g., a link from loading a new page) )
event.stopPropagation — 阻止了父Node的事件触发( prevent an event from triggering a parent node's event)
 
例如:
<script type="text/javascript">
 
function echo(event) {
        key = event.charCode;
        console.debug(event.charCode);
}
 
function foo(event) {
        dojo.stopEvent(event);
        console.debug("The link was clicked");
}
dojo.addOnLoad(function() {
        interactiveNode = dojo.byId("interactive");
        linkNode = dojo.byId("link");
        dojo.connect(interactiveNode, 'onkeypress', echo);
        dojo.connect(linkNode, 'onclick', foo);
});
</script>
<body>
        <a href="http://dojotoolkit.org" id="link">Dojo</a> is great.
        <form>
                <label for="infield"> Type some text: </label>
                <input id="interactive" type="text" name="infield">
        </form>
</body>
 
Dijit组件和Event
         @TODO
Topic
@TODO
 
 
DojoAjax异步调用
HelloWorld Dojo Ajax 程序
我们做一个画面,在画面中使用ajax从服务器中取得动态的内容,将这些内容显示在页面中。
首先我们在服务器上做一个txt文件,例如文件为ajax.txt,内容为:
Hello World!
This is a simple ajax text file.
 
然后做一个jsp画面,其中有一个div内容从服务器上的ajax.txt文件取得,代码为:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ajax Hello World!</title>
<script type="text/javascript"
    src="<%= request.getContextPath()%>/dojo-0.9.0beta/dojo/dojo.js">
    <!-- ① -->
</script>
 
<script type="text/javascript">
    function hello() {   <!-- ④ -->
      dojo.xhrGet( {
        // The following URL must match that used to test the server.
        url: "http://localhost:8080/teamware/test/ajax.txt",<!-- ⑤ -->
        handleAs: "text", <!-- ⑥ -->
 
        timeout: 5000, // Time in milliseconds
 
        // The LOAD function will be called on a successful response.
        load: function(response, ioArgs) {   <!-- ⑦ -->
          dojo.byId("cargo").innerHTML = response;
          return response;
        },
 
       // The ERROR function will be called in an error case.
        error: function(response, ioArgs) {  <!-- ⑧ -->
          console.error("HTTP status code: ", ioArgs.xhr.status);
          return response;
          }
        });
      }
</script>
 
<script type="text/javascript">
    dojo.addOnLoad(hello); <!-- ② -->
</script>
 
</head>
<body>
   <div id="cargo" style="font-size: big"></div> <!-- ③ -->
</body>
</html>
 
说明:
① 引入dojo框架
② 把方法hello注册到onload中,当画面全部装载以后运行该方法。
③ 显示ajax.txt文件内容的div
④ Ajax方法,取得服务器ajax.txt的内容,在cargo div中显示这些内容。
⑤ 指向ajax.txt的url路径。
⑥ 服务器文件类型
⑦ Ajax调用成功的情况下,调用的方法,包括将ajax.txt文件中的内容放在div中
⑧ 错误处理
 
 
 
Dojo Toolkit 1.2.0: Dojo + Dijit + DojoX Extract files from the download locally or on a web server. Include <SCRIPT TYPE="text/javascript" SRC="dojo/dojo.js"></SCRIPT> and you're on your way. Browse to dojo/tests/runTests.html or dijit/themes/themeTester.html to see Dojo in action 立即下载

相关推荐

外设高级定时器互补输出带死区控制实验

外设高级定时器互补输出带死区控制实验

ff_juju的博客 1652

dojo toolkit_使用Dojo Toolkit构建Ajax应用程序

在你开始前 发展有关此主题的技能 此内容是用于提高技能的渐进知识路径的一部分。 请参阅Dojo开发入门 本教程适用于有兴趣使用Dojo Toolkit相对轻松地创建视觉上令人印象深刻的RIA的Web应用程序开发人员。 本教程将指导您完成使用Dojo开发完整的Web应用程序的过程,尽管您将通过它学习很多关于Dojo的知识,但是建议您在继续操作之前熟悉Dojo的基础知识。 您还应该...

cuyi7076的博客 1334

京东联盟h5st(3.1)加密参数逆向实战与反爬对抗策略

本文详细解析了京东联盟h5st(3.1)加密参数的逆向分析与实战破解过程。通过接口分析定位关键加密函数,拆解h5st结构并还原其基于SHA256和HMAC-SHA256的加密逻辑,最终使用Python集成JavaScript环境成功复现加密算法,并分享了应对反爬的频率限制、IP封禁及算法升级等对抗策略。

weixin_29246195的博客 1738

dojo框架的基本认识

Dojo的全称是Dojo Toolkit,始创于2004年,是当前各种蓬勃发展的JS工具包中的佼佼者。Dojo 为富互联网应用程序(RIA) 的开发提供了完整的端到端的解决方案,包括核心的 JavaScript 库,简单易用的小部件(Widget)系统和一个测试框架,此外,Dojo 的开源开发社区还在不停地为它提供新的功能。

weixin_45774558的博客 3133

miRNA测序数据生信分析——第二讲,数据库下载整理

一个非编码RNA的整合数据库,可用来识别鉴定各种类型的ncRNA。提供的是ncRNA在基因组上的基因序列,而非转录成熟ncRNA的序列。最新版:2022-11-02Rfam数据库中ncRNA类型分三大类:Cis-reg和Gene和Intron。这三大类又有子类。一个提供包括miRNA序列数据、注释、预测基因靶标等信息的全方位数据库,是存储miRNA信息最主要的公共数据库之一。最新版:2018-12-01。

weixin_44616693的博客 4098

OpenHarmony WiFi子系统全解析:从架构到代码实现(大合集)

头文件路径[相对路径][相对路径][相对路径][相对路径]// 网络配置结构 (wifi_device_config.h)// SSID字符串// 预共享密钥// 安全类型// 网络ID// 优先级// 是否隐藏网络// 扫描信息结构 (wifi_scan_info.h)// SSID// BSSID (MAC地址)// 安全类型int rssi;// 信号强度// 频率// 信道宽度// 时间戳// 连接信息结构 (wifi_linked_info.h)

m0_67505153的博客 1059

Dojo开发(二)

Base 包提供 Dojo Toolkit 的基础,包括一些功能,比如 DOM 使用函数、CSS3 基于选择器的 DOM 查询、事件处理、基本的动画、以及 Dojo 基于类的面向对象特性 类似于Jquery,Dojo里也包含非常实用的函数,特别是在DOM查询获取元素上。接下来举例介绍。 dojo.byId 该函数可以通过id属性选择一个DOM节点。该函数是标准 JavaScript documen...

huangbaokang的博客 717

ChatGPT充值,银行卡被拒绝,图文教程

ChatGPT充值,银行卡被拒绝

weixin_46713695的博客 2万+

dojo toolkit_使用Dojo Toolkit消耗Web服务

本文是关于使用Dojo Toolkit消费Web服务(简单服务和RESTful Web服务)的。 为了充分利用本文,您需要在系统上安装并配置以下内容: 文本编辑器或集成开发环境(IDE) (本文使用Eclipse JavaScript IDE。) Web服务器 Dojo工具包概述 随着对构建更好的富Internet应用程序(RIA)的关注日益增强,JavaScript框架...

cuxiong8996的博客 295

C#实现图片裁剪 (附完整源码)

C#实现图片裁剪 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 507

OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:核心载体:以文件夹为单位,不管多简单的 Skill,文件夹里都必须有 SKILL.md 文件——这是 AI 识别技能的唯一依据,少了它,再完善的代码也没用;

haolove527的专栏 7026

AJAX跨域请求获取JSON数据

要了解 JSONP,不得不提一下 JSON,那什么是 JSON?JSONP(JSON with Padding) 是一个非官方的协议,它允许在服务器端集成 Script tags 返回至客户端,通过 javascript callback 的形式实现跨域访问(这仅仅是 JSONP 简单的实现形式)。

2293

【Scratch考级100图】图01-等级考试scratch绘 画正方形

一、案例介绍 小朋友们应该在数学课或者平时生活中有了解过正方形,正方形在我们生活中到处可见,那我们如果通过Scratch软件来绘制一个正方形呢,我们一起来学习一下吧,在舞台正中央绘制一个边长为200的正方形,要求: 1、围绕舞台中心绘制正多边形,均匀分布在四个象限中 2、正方形边长为200个单位,线条粗细、颜色自定 3、利用画笔绘制正方形,不能有多余的线条 二、案例演示 【Scratch案例演示】Scratch图1-画正方形 三、案例分析 当我们点击小绿旗启动程序后,舞台上会出现一个画

青少年编程学习指导 2669

struts2内置支持的Javascript框架----Dojotoolkit介绍

Struts2内置对dojotoolkit的支持 @TODO 基于Ajax标签做更详细的使用讲解,由于dojo ajax标签在struts2中还处于试验阶段,所以我们主要讲解dojo在不使用struts2内置功能的情况下怎么和struts2结合使用。 Dojotoolkit介绍 Dojotoolkit是当前比较流行的JavaScript框架,dojo主要提供了以下功能:...

shirlly 235

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Spring框架与AJAX的集成是现代Web应用开发中的重要技术,它允许创建响应迅速、用户体验出色的富客户端应用

研讨会教授如何使用最新版本的Spring Web MVC,Spring Web Flow,Spring JavaScript和Spring Faces创建富Web应用程序。 通过专注于使用Spring解决Java Web应用程序开发人员面临的问题,它对我们的旗舰课程“ Core Spring”课程起到了补充作用。

[Blog][Domain] programb.blog.youkuaiyun.com 316

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Ajax 学习资源

出处:http://en.wikipedia.org/w/index.php?title=Ajax_%28programming%29 ArticlesAjax: A New Approach to Web Applications, by Jesse James Garrett. The original article which coined the term Ajax: Usable In

baikaishui_0825的专栏 1028

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

推荐十个拥有丰富 UI 组件的 JavaScript 开发框架

推荐十个拥有丰富 UI 组件的 JavaScript 开发框架   如今,网上有各种各样的 JavaScript 框架用来简化 Web 应用开发。这些框架都提供了一些核心的特性,例如 DOM 操作,动画,事件处理以及 Ajax 交互,但不是都带有 UI 组件。今天这...

ao883462的博客 201

李涛:用AJAX轻松进行web2.0开发

11月30日下午在113会场中,讲师李涛的演讲题目为《运用AJAX开发web2.0应用》。 Web2.0时代下的Ajax Web2.0在应用上更像一个桌面程序,页面的更新与交互模式已经有了一个很大的变化,将以前的全部刷新进化成为页面内局部更新。而在web2.0时代,AJAX(Asynchronous JavaScript And XML)已经成为程序开发的潮流。李涛先生的演讲与程序开发息息

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 1359

java ajax post跨域请求传递json格式数据问题

java 后台实现ajax post跨域请求传递json格式数据获取json数据问题   参考大神:http://blog.youkuaiyun.com/chunqiuwei/article/details/19924821 java后台: public String ajaxProxy(Integer param1,String param2,String url, Htt

cx136295988的博客 5283

AJAX架构之Dojo篇

AJAX架构之Dojo篇一、前言自去年开始,AJAX一下成了关注的技术热点,各种AJAX框架迅速的发展了起来,其中又分为客户端AJAX架构,服务器端AJAX架构等,其中DojoToolkit做为一个优秀的客户端AJAX架构,被越来越多的人所关注,学习。二、Dojo简介作为早期的开源AJAX架构之一,Dojo开始于2004年9月,网址是 http://dojotoolki

赵晓雷的专栏 752

AJAX跨域请求json数据的实现方法

这篇文章介绍了AJAX跨域请求json数据的实现方法,有需要的朋友可以参考一下 我们都知道,AJAX的一大限制是不允许跨域请求。 不过通过使用JSONP来实现。JSONP是一种通过脚本标记注入的方式,它是可以引用跨域URL的js脚本,不过需要提供一个回调函数(必须在您自己的页面上),因此,你可以自己处理结果。 让我们看看JSONP的是怎么在jQuery,MooTools的,Dojo Toolki

liuzp111的专栏 2481

十个拥有丰富UI组件的JavaScript框架

如今,网上有各种各样的 JavaScript 框架用来简化 Web 应用开发。这些框架都提供了一些核心的特性,例如 DOM 操作,动画,事件处理以及 Ajax 交互,但不是都带有 UI 组件。今天这篇文章向大家推荐的10个 JavaScript 框架提供了丰富的 Web UI 组件,帮助你构建一致,可靠以及高度交互的漂亮用户界面。 ExtJS   ExtJS 是最流行的 JavaScr

简陋的小草屋 608
上一篇: 第十二章 集成iBatis
下一篇: 第十五章 AJAX JQuery
struts2
博客等级 码龄19年 885粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值