ajax的一些实用技巧

1.尽量优先采用ajax获取html文件,然后再操作dom把数据填充到里面

在实际项目中,如果前端开发人员没有把页面给切分开,那么有如下两种办法可供选择:其一是,在各种点击事件中,用js去拼接并在拼接的时候把数据填充到里面。代码如下:

$(‘#myPublishs‘).unbind().bind(‘click‘,function(){ $.ajax({ url : initPublishUrl, dataType: "json", type:‘post‘, xhrFields: { withCredentials: true }, data:JSON.stringify({‘page‘:1,‘pageSize‘:5}), contentType: ‘application/json; charset=utf-8‘, success : function(res) { if(res.code == 200 && res.data){ var htmlStr = ""; var result = res.data.data; if(result && result.length != 0){ htmlStr = "<ul class=‘artile-wap MyCollection-content‘ style=‘min-height:auto‘>" + "<span class=‘rfuse-circular2‘></span>"; for(var i = 0; i < result.length; i++){ var row = result[i]; var time = row.updateTime; time = kk_main.subTime(time); htmlStr += "<li class=‘artile-item clearfix‘ articleid=" + row.id +">" + "<div class=‘margin‘>" + "<span class=‘time-pub‘>" + row.updateTime + "</span>" + "<div class=\"item-border item2 col-sm-12 clearfix\">" ; if(row.cover){ htmlStr +="<div class=\"col-sm-4 col-md-4 item-img myCollectionPic\">" + "<img src=\""+row.cover+"\" class=\"img-responsive\" alt=\"\" />" + "</div>"+ "<div class=\"col-sm-8 col-md-8 item-body\">"; }else{ htmlStr += "<div class=\"col-sm-12 col-md-12 item-body\">" ; }

 htmlStr +=‘<h3><a href="/v/‘+row.id+‘">‘ + row.realTitle + "</a></h3>" + ‘<p><a href="/v/‘+row.id+‘">‘ + row.summary + "</a></p>" + "<ul class=\"list-unstyled list-inline inline-black-span\">" ; if(row.tags){ htmlStr += ‘<li><span class=\"glyphicon glyphicon-tag\" aria-hidden=\"true\"></span>‘; for(var j=0; j< row.tags.length; j++){ if(j < 3){ //最多取3个标签 htmlStr += "<a href=\"/t/"+row.tagIds[j]+"\">" + "<span class=\"\">"+ row.tags[j]+"</span></a>," ; }else{ break; } } htmlStr = htmlStr.substring(0,htmlStr.length-1); //去掉最后一个‘,‘ } htmlStr += "</li><li class=\"blue\"><span class=\"glyphicon glyphicon-eye-open\" aria-hidden=\"true\"></span><span>"+ row.viewCnt + "</span></li>" + "<li><span class=\"glyphicon glyphicon-comment\" aria-hidden=\"true\" style=\"color:#ddd;\"></span><span>"+ row.commentCnt +"</span></li>" +  "</ul>" + "</div>" + "</div>" + "</div>" + "</li>"; }

 htmlStr += "</ul>" + "<div class=\"text-center col-sm-12 color-f\">" + "<div class=\"load-btn\">" + "<a id=\"morePubs\" href=\"#\" class=\"btn btn-load\">加载更多</a>" + "</div>" + "</div>";

 }else{ htmlStr = emptyHtml(); } $(‘#content‘).append(htmlStr);  //事件绑定 publicBind(); }else if(res.flag && res.flag == 0){ window.location.href = ‘/a/Login.html‘; }

 }, error: function (res) {} });});

这种方法优点是,方便将后台获取的数据填充到html字符串中。缺点也很明显,各种字符串拼接和js代码都混合在一起。

其二代码如下:

$(‘#myPublishs‘).unbind().bind(‘click‘,function(){ $.ajax({ url : initPublishUrl, dataType: "json", type:‘post‘, xhrFields: { withCredentials: true }, data:JSON.stringify({‘page‘:1,‘pageSize‘:5}), contentType: ‘application/json; charset=utf-8‘, success : function(res) { if(res.code == 200 && res.data){ $(‘#myPublishs‘).unbind().bind(‘click‘,function(){ $("#content").load("example.html"); //操作dom进行数据填充 }); } }, error: function (res) {} }); });});

该方法的优点是,不需要繁琐的进行html字符串的拼接,主要关注数据的填充就可以。

2.$.ajaxSetup设置全局 AJAX 默认选项。

把共有的ajax设置抽取出来,这样就不用每次写ajax时都要配置共有的选项了

// 设置AJAX请求时某些参数的的默认值 $.ajaxSetup({ type: "POST", contentType: "application/x-www-form-urlencoded; charset=UTF-8", //设置AJAX请求时,带上cookie xhrFields : { withCredentials : true } });

很方便有木有…

3.$.ajaxSuccess(callback)请求成功时执行函数。

 // 全局定义AJAX完成后需要做的操作,检测是否登录 $("document").ajaxSuccess(function(evt, request, settings){
   $(this).append("<li>请求成功!</li>");
 });

一般常用在校验用户是否登录,给予相应的提示信息。

巧用ajax事件可以避免在每一个ajax请求中书写同样的代码,降低代码的冗余度。

4.ajax跨域请求

说明:没有进行跨域请求时,在进行请求时,浏览器会默认带上cookie数据,而跨域请求时,浏览器不会带上cookie需要手动加上如下代码

// 设置AJAX请求时某些参数的的默认值 $.ajaxSetup({ //设置AJAX跨域请求时,手动带上cookie xhrFields : { withCredentials : true } });
时间: 2024-11-05 11:30:50

ajax的一些实用技巧的相关文章

Mac预览怎么用 Mac预览功能实用技巧大全

Mac预览怎么用?有很多的用户以为Mac自带的预览功能只具有简单的图片浏览功能,其实不然,其实"预览"是一款强大的看图.修图.改图软件,也同时是一款多功能的 PDF 阅读与编辑工具,接下来Pc6苹果小编给大家详细介绍一下Mac预览功能实用技巧. 目前的 Mac 预览程式可以支持 TIFF. PNG. JPEG. GIF. BMP. PDF 等主要文件格式的浏览与编辑,而单纯预览上也可以支持像是 Photoshop 等专业图像处理软件. Office 等专业文书处理软件所产生的特殊文件格

iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式

iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式 说明: 1)该文简短介绍在iOS开发中遍历字典.数组和集合的几种常见方式. 2)该文对应的代码可以在下面的地址获得:https://github.com/HanGangAndHanMeimei/Code 一.使用for循环 要遍历字典.数组或者是集合,for循环是最简单也用的比较多的方法,示例如下: 1 //普通的for循环遍历 2 -(void)iteratorWithFor 3 { 4 //////////处理数组/////

NSString的八条实用技巧

NSString的八条实用技巧 有一篇文章写了:iOS开发之NSString的几条实用技巧 , 今天这篇,我们讲讲NSString的八条实用技巧.大家可以收藏起来,方便开发随时可以复制粘贴. 0.首字母大写 代码: //首字母大写 NSString *string = @"ligang"; NSLog(@"string: %@",[string capitalizedString]); 打印: 2015-07-16 23:06:11.652 iOSStrongDem

Android开发:TVBox智能机顶盒开发实用技巧分享

本文旨在指导想要进入Android TVBox智能机顶盒开发领域或刚刚进入Android TVBox开发领域的新人带路,愿你们越走越远! 实用工具篇 Eclipse+ADT 别问它干嘛用的,我也不知道. SercureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,同时支持Telnet和rlogin协议. SecureCRT是一款用于连接运行包括Windows.UNIS和VMS的远程系统的理想工具. 通过使用内含的VCP命令行程序可以进行加密文件的传输.有流行CR

程序员在编程开发中的10个实用技巧

程序员在编程开发中的10个实用技巧,下面是我自己在工作中学到的一些简单的技巧和策略,希望能对各位有用.1.     橡皮鸭调试法不知道各位有没有这样的经历,当你正在给别人描述问题的时候,突然灵机一动想到了解决方案?这种情况的产生是有科学依据的.高谈阔论能让我们的大脑重新有条理地组织问题.在这种情况下,你的聊天对象就是“橡皮鸭”.团队中的每个人都应该积极主动乐意地成为彼此的“橡皮鸭”.有时候,如果你幸运的话,你的“橡皮鸭”搞不好还能给出有效的建议呢.2.     快速信息反馈一旦写好代码就要尽快得

iOS实用技巧 - 简易实现多皮肤功能

前言:不记得谁说的了,中国的用户大概是世界上最喜欢多皮肤功能的用户了.我很讨厌写安卓程序,图形界面设计工具及其难用,还不如手写,编辑器慢如蜗牛,智能提示总是跟不上我输入的速度,相同的功能,安卓的代码量至少是iOS的三倍,每写一行代码,都觉得自己的手指在滴血.可是安卓灵活统一的style功能确实很贴心!5之前,iOS平台上实现相同的功能一直没有个比较好的办法. iOS5之后,苹果将所有界面组件的设定,都绑定在一个叫UIAppearance的协议上了,你可以简单的通过UIAppearance设定组件

iOS实用技巧 - AFNetworking2安全的使用自签证书访问HTTPS

友情提示:本文使用的AFNetworking是最新git pull的2.3.1版本,如果想确认你机器上的AFNetworking版本,请打git tag命令查看. 绝大部分iOS程序的后台服务都是基于RESTful或者WebService的,不论在任何时候,你都应该将服务置于HTTPS上,因为它可以避免中间人攻击的问题,还自带了基于非对称密钥的加密通道!现实是这些年涌现了大量速成的移动端开发人员,这些人往往基础很差,完全不了解加解密为何物,使用HTTPS后,可以省去教育他们各种加解密技术,生活轻

雅思论文写作的实用技巧

既然我们搞清楚了问题所在,那么,如何针对以上问题提高雅思议论文的写作能力呢?经过长期的教学实践,笔者总结出可供广大中国考生学习和借鉴的方法. (一)增大阅读量. 古语道:“读书破万卷,下笔如有神.”写作是语言输出的实践过程,只有达到一定量的输入,才会有源源不断的输出.因此,广大中国的考生们要多读英文报纸杂志,如ChinaDaily,21st Century,EnglishSalon,EnglishWorld等. 之所以这样做,是因为阅读可以起到一箭数雕的作用.其一,可以提高阅读能力.其二.可以扩

【开发工具】vim编辑器实用技巧总结

总结一些我们在平时使用vim编辑器的一些实用功能,后续会一直更新. 1.  visual插件 visual插件其实相当于一个书签作用,比如我们在一篇很长的源代码文件中,我们可以标记一行,然后后来我们再想回到这一行时,只需要一个快捷键就能迅速定位到这一行,非常方便,不用不停地往上或往下翻. 1.1  常用命令 1.  mm标记一个标签: 2.  F2回到被标记的那一行: 3.  连续按两次mm就可以取消标签: 4.  shift+F2可以在几个标签来回切换: 2.  emmet.vim插件 emm