在我们开发的时候,我们回时常用到javascript实现页面局部刷新,本文我们就和大家分享JQuery ajax局部刷新,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

案例:

描述:

1. 点击登录则弹出登录对话框

2. 如果用户名密码不正确,则提示错误信息

3. 当输入信息正确,则刷新登录信息,显示用户名和退出按钮

4. 点击退出弹出提示信息,然后确定后再次刷新用户名,回到了第一幅图片的位置

那这些简单的操作,都需要做一些什么工作呢?

1. 加载登录/(用户名-退出)的页面

2. 点击登录连接,打开登录对话框

3. 登录form表单提交时,对信息进行验证。

4. 验证通过后,关闭对话框,同时刷新1中的页面,显示“用户名-退出”

5. 点击退出a标签时,登出成功后再次刷新1中的页面,显示“登录”

加载登录/(用户名-退出)的页面

1. 给p一个id,用来做页面索引,使后面能够定位到此处。

2. 给一个url属性,使其在页面加载的时候向jfinal服务端获取对应信息,当然也就是为了局部刷新获取页面内容。// 有url的p主动请求服务端获取数据

$("p[url]", $p).each(function() {

var $this = $(this);

var url = $this.attr("url");

if (url) {

$this.ajaxUrl({

type : "POST",

url : url,

callback : function() {

}

});

}

});

通过url来定位到p,然后获取url,准备发起ajax请求。

当然ajaxUrl方法先不要去关注太多,稍后会进一步解释。

点击登录连接,打开登录对话框

复制代码 代码如下:

登录

1. 增加属性target为dialog属性,当然如果你还没有关注本系列教程,那么你可以回顾一下来看看怎么通过a标签打开一个对话框,看看如何打开模态对话框。

2. 增加width属性,设置对话框的宽度。

当输入信息正确,则刷新登录信息,显示用户名和退出按钮

复制代码 代码如下:

1. 这个form表单的属性就很关键了,action中增加了两个参数“callbackType=closeCurrent”、“rel=login_tip”,callbackType指定对话框在登录成功后要关闭,而rel则指定关闭对话框后刷新的局部对象。

2. validateCallback你可以参照 jfinal与bootstrap的登录跳转实战,里面有详细的介绍。

3. 然后对于dialogAjaxDone,就需要重点说明以下,请看以下内容。function dialogAjaxDone(json) {

YUNM.ajaxDone(json);

if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {

if (json.rel) {// 指定对应的p进行数据加载

var url = json.forwardUrl, options = {

elementId : json.rel

};

var op = $.extend({

data : {},

elementId : "",

callback : null

}, options);

var $panel = $("#" + op.elementId);

if (!url) {

url = $panel.attr("url");

}

if (url) {

$panel.ajaxUrl({

type : "POST",

url : url,

data : op.data,

callback : function(response) {

if ($.isFunction(op.callback))

op.callback(response);

}

});

}

}

if ("closeCurrent" == json.callbackType) {

close_pop();

} else if ("closeCurrentThenForward" == json.callbackType) {

close_pop();

if (json.forwardUrl) {

location.href = common.ctx + json.forwardUrl;

return;

}

}

}

}

1. 这里请看“if (json.rel) {”中的这串代码,该处通过json.rel,获取a标签上的系列参数,然后再次调用ajaxUrl方法,用来做局部刷新。

到了这里,就不得不说ajaxUrl这个方法了(function($){

// DWZ set regional

$.setRegional = function(key, value){

if (!$.regional) $.regional = {};

$.regional[key] = value;

};

$.fn.extend({

initUI: function(){

return this.each(function(){

if($.isFunction(initUI)) initUI(this);

});

},

loadUrl: function(url,data,callback){

$(this).ajaxUrl({url:url, data:data, callback:callback});

},

ajaxUrl: function(op){

var $this = $(this);

$this.trigger(YUNM.eventType.pageClear);

$.ajax({

type: op.type || 'GET',

url: op.url,

data: op.data,

cache: false,

success: function(response){

var json = YUNM.jsonEval(response);

if (json[YUNM.keys.statusCode]==YUNM.statusCode.error){

if (json[YUNM.keys.message]) $.showErr(json[YUNM.keys.message]);

} else {

$this.html(response).initUI();

if ($.isFunction(op.callback)) op.callback(response);

}

},

error: YUNM.ajaxError,

statusCode: {

503: function(xhr, ajaxOptions, thrownError) {

$.showErr("服务器当前负载过大或者正在维护!" || thrownError);

}

}

});

},

});

通过ajax请求,向jfinal端发起请求,然后接收对应的response,根据response状态,我们将对应的页面渲染内容显示到局部p中。

jfinal端就很简单了public void initLoginTip() {

logger.info("初始化登录/退出页面");

render("login_tip.jsp");

}

渲染到对应组件页面就OK了。

说到这,登录的局部刷新就完成了,只要你注意到对应的方法就好了。

点击退出a标签时,登出成功后再次刷新1中的页面,显示“登录”

对于退出,你当然还是可以参照jfinal与bootstrap的登出实战。

对于ajaxDone方法,你可以参照dialogAjaxDone方法。

ajax提交成功后局部刷新 jq_JQuery ajax局部刷新实例相关推荐

  1. Jquery的ajax提交成功后刷新页面

    转载于:https://www.cnblogs.com/huoxiansudi/p/6646855.html

  2. Ajax请求成功后页面跳转

    文章目录 Ajax实现页面局部刷新 Ajax请求成功后页面跳转 Ajax实现页面局部刷新 这里通过点击一个按钮,然后下面产生一段文字,而整个页面不用刷新 <!DOCTYPE html> & ...

  3. ajax提交时页面转圈,jquery的ajax提交时loading提示的处理方法

    方法1:使用ajaxStart方法定义一个全局的"加载中..."提示 $(function(){ $("#loading").ajaxStart(functio ...

  4. ajax请求 拦截窗口,ajax请求成功后新开窗口window.open()被拦截解决方法

    ajax请求成功后新开窗口window.open()被拦截解决方法 问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但 ...

  5. ajax成功之后在执行,ajax传入成功后执行后台方法

    做一个网站,再页面读取一段文字后,点击按钮,用ajax将文字传回后台,现在我希望ajax返回成功后,执行另外一段后台方法, 请问有什么好方法吗? [WebMethod] public static s ...

  6. ajax请求成功后打开新开窗口(window.open())被拦截的解决方法

    问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...

  7. 多个Ajax请求成功后再执行后续方法

    经常会遇到需要ajax请求完毕后调用某方法,这次是多个ajax请求成功后,用它们返回的数据传参给回调方法,查询了一下,可以用jquery中的 $.when(),使用方法如下: $.when( $.aj ...

  8. 使用ajax提交form表单,包括ajax文件上传 转http://www.cnblogs.com/zhuxiaojie/p/4783939.html...

    使用ajax提交form表单,包括ajax文件上传 前言 使用ajax请求数据,很多人都会,比如说: $.post(path,{data:data},function(data){... },&quo ...

  9. 帆软填报增加记录提交成功后没有_大病医疗填报图解

    判断是否符合扣除条件 在一个纳税年度内,纳税人发生的与基本医保相关的医药费用支出,扣除医保报销后个人负担(指医保目录范围内的自付部分)累计超过15000元的部分,由纳税人在办理年度汇算清缴时,在800 ...

最新文章

  1. Scala中没有break和continue, 如何退出循环
  2. 读取接口XML和批量导入数据SqlBulkCopy
  3. 76. 最小覆盖子串(滑动窗口)
  4. JPA Hibernate应用实例
  5. 【DP】I Will Like Matrix!
  6. 红米手机5怎么样卡刷开发版开启root超级权限
  7. python 显示中文_Python|绘制个性化数据的动态图表及解决中文显示问题……
  8. 定制一个winCE5.0操作系统
  9. windows上搭建NFS服务器--haneWIN
  10. 旋转的描述【2】——等效旋转矢量与四元数
  11. idea设置svn上传或下拉代码
  12. 深度学习的显卡对比评测:2080ti vs 3090 vs A100
  13. fzyczn生日赛t1 CZN
  14. 记录一下解决win10无法分屏问题
  15. 了解贝尔曼·福特算法
  16. c# IE浏览器清除缓存没用
  17. 计算机社团感恩节免费维修周策划书,社团感恩节活动策划书范文 .docx
  18. “十一”逃离京城的十五条自驾线路
  19. android 获取当前系统选择的语言
  20. [深度概念]·简述人脸识别开发原理

热门文章

  1. web前端开发大学生自学学习线路图
  2. 简单了解JQuery中的attr及removeAttr
  3. 机器学习与算法(10)--Lasso算法(least absolute shrinkage and selection operator)
  4. 运行phpstudy时,显示3306端口被占用
  5. 视频网站节约流量的小妙招
  6. 自动跟随机器人教程(四)软件部分 树莓派+电脑 控制小车移动
  7. 模拟器上没有Home键
  8. NO.4 Android Opencv 特征检测
  9. 浅谈监控易运维系统在金融信创国产化中的使用
  10. 动漫论坛的设计与实现