前天修复一个系统bug,同样这个bug是遗留下来的。要求是这样的,用户评论后,应该将用户的信息放在文章的下面。这没有什么难的,两种方法,一个是reload,另外一个就是ajax实现无刷新评论。感觉还是后面一个好。但是毕竟是别人写过的,与我想会有出入。 他的代码是这样的。
//按钮的onclick事件 function my_click () { var params = ""; // ...得到params Common.checkLogIn('Pinglun.post(params)'); /* 这里不是重点 Common.checkLogIn = function(fun) { if(isLogIn) { eval(fun); } else { redirect_to_log_in } } */ } Pinglun.post = function(params) { checkIsPinglunBefore(params) } Pinglun.checkIsPinglunBefore = function(params) { $.ajax({ url:xxx, .... success:function(result) { if(!result['isPinglunBefore']){ postPinglun(params); } else{ alert("已经评论过了!"); } } }); } Pinglun.postPinglun = function(params) { $.ajax({ url:yyy, ...... success:function(result){ if(...){//记不清了,应该是走到if里面 $("#abc").show(); //页面上没有abc这个id,冷汗啊 } else{ } } }); }
好了,可以看出来,做这个事的时候思路挺清晰,用了两次ajax。因为我得按照他的思路去修改bug,我想在成功执行ajax以后刷新页面。让我头疼的是:他把所有的功能都写死了,让我再添加任何一点功能的余地都没有。比如这个ajax,如果我的话,我肯定会给出这样的一个ajax接口来。先写代码再解释:
function sync(url,params,success_callback,error_callback) { $.ajax({ url:url, param:params, success:success_callback(result), error:error_callback(result) }); }
有人会反对,我的同事就反对我这么做。理由是调用你的函数,得写很长的代码。我承认会写很长的函数,但是会增加可读性的。比如会有个函数是构造params,这个函数就可以structure_params,这样做的好处是,一旦我的需求变了,我的核心代码不用变。而且我只修改这块的变化就好了。
通过这次修改bug,我想到的是,多给别人留一些可变化的空间比较好。
相关推荐
AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件
ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效
ajax ajax原理 ajax代码 ajax编程 ajax学习
ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件...
ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解
ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子
Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码
ajax上传ajax上传ajax上传ajax上传ajax上传
ajax 分页ajax 分页ajax 分页
AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战AJAX实战
ajax 宝典 ajax 宝典 ajax 宝典 ajax 宝典
Ajax组件Ajax组件Ajax组件Ajax组件
three ajax ajax ajaxthreethree ajax ajax ajax ajax ajax ajax three ajax ajax ajax
在基于数据的应用中,用户需求的数据如联系人列表,可以从独立于实际网页的服务端取得并且可以被动态地写入网页中,给缓慢的Web应用体验着色使之像桌面应用一样。 Ajax的核心是JavaScript对象XmlHttpRequest。该...
json ajax ajax框架 json ajax ajax框架
Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包Ajax开发包
AJAX空间安装指南帮助你正确快速安装Ajax
AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码AJAX 源码
AJAX原理 原理 AJAXAJAX原理 原理 AJAXAJAX原理 原理 AJAX