jquery ajax无刷新跳转,jQuery+Ajax实现无刷新操作

使用jQuery实现Ajax操作       想要实现Ajax页面无刷新效果,但是直接利用Ajax代码实在有些麻烦,所以就想用jQuery实现。jQuery很好的封装了Ajax的核心对象XMLHTTPRequest。所以用起来非常方便。

首先,创建服务器端代码,这里用Servlet实现服务器端的数据处理;代码如下:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// 设置编码格式

resp.setContentType("text/html;charset=UTF-8");

// 创建输出对象

PrintWriter out = resp.getWriter();

// 得到请求参数

String name = req.getParameter("uname");

// 判断

if (name == null || name.length() == 0)

{

out.println("用户名不能为空!");

}

else

{

// 判断

if (name.equals("cheng"))

{

out.println("用户名["+ name +"]已存在!请使用其他用户名!");

}

else

{

out.println("用户名[" + name + "]尚未存在!您可以注册!");

}

}

}

然后,创建JSP页面,要使用jQuery,必须在页面之中引入jQuery库,也就是一个Javascript文件,另外还需引入自定义的Javascript文件,如下:

而JSP页面只需要一个文本框、一个普通按钮和一个空白DIV层即可,该DIV用于显示服务器端返回的处理结果;按钮的单击事件触发verify()方法。如下:

用户名:

注意:Ajax方式下不需要使用表单来进行数据提交,因此页面中不用写

标签。

接下来,创建一个verify.js文件,在该文件中创建verify()方法,用来实现Ajax的无刷新效果,这是该示例中最为重要的一步。想要使用jQuery实现Ajax分为以下四步:

· 获取文本框中的内容;

· 将文本框中的内容发送给服务器端的Servlet;

· 接收服务器端返回的数据;

· 将服务器端返回的数据动态地显示在JSP页面上。

针对于第一步,首先通过jQuery获得对象,并取得对象的值,如下:

// 取得文本框对象,通过$()获取的所有对象都是jQuery对象

var jQueryObject = $("#uname");

// 获取文本框中的值

var userName = jQueryObject.val();

通过jQuery中的$()函数获得页面的节点,该函数得到的是一个jQuery对象,然后通过jQuery中的val()方法取得节点的值,也就是文本框中的内容。

针对于第二步,我们使用jQuery的get()方法来发送数据到服务器端,如下:

$.get("TestServlet?uname=" + userName,null,callback);    该方法返回一个XMLHttpRequest对象,该方法提供三个参数,第一个是请求的服务器端的URL,第二个参数是待发送的参数,一般可以在第一个URL中直接带上参数,所以一般该参数为null,第三个参数是服务器端成功处理完成数据之后的一个回调函数。

针对于第三步,就应该创建一个回调函数,用来处理服务器端返回的数据,如下:

// 回调函数

function callback(data)

{

}

该回调函数有一个参数,该参数就是客户端返回的数据。

针对于第四步,再次利用jQueyr的选择器函数得到DIV层,将返回的数据显示在该层之上,如下:

function callback(data)

{

/**

* 第三步,接收服务器端返回的数据

*/

// 将服务器端返回的数据动态的显示在页面上

var resultObject = $("#result");

resultObject.html(data);

}

利用jQuery的html()方法将数据动态地显示到DIV层之中。

现在我们对以上的代码进行优化,我们用两句代码就可以实现以上所有代码的功能,这就是jQuery的强大之处之一。在verify.js文件之中的verify()方法也可以写成下面的形式:

$.get("TestServlet?uname=" +$("#uname").val(),null,function(data){

$("#result").html(data);

})

再为大家分享一个,下面是“无刷新登录”的例子,采用Ashx+jQuery Ajax实现。

1、后台实例代码 ashx文件(可替换为从数据库中读取)

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

//context.Response.Write("Hello World");

string name = context.Request.Params["name"].ToString().Trim();

if ("china".Equals(name))

{

context.Response.Write("1");//1标志login success

}

else

{

context.Response.Write("0");//0标志login fail

}

}

2、前台实例代码 aspx文件

$(function() {

$("#test").live("click", function() {

//alert(0);

$.ajax({

type: 'POST',

url: 'Handler1.ashx',

data: { "name": $("#name").val() },

success: function(data) {

if (1 == data)

alert('login success');

else

alert('login fail');

}

});

});

});

分别在前台aspx页面和后台ashx页面中输入如上代码,就实现了一个超级简单的Ajax登录,很简单吧?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值