前天修复一个系统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开发草考文档,方便快捷1. AJAX介绍AJAX是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。2. AJAX实例AJAX可以用来创建更多交互式的网络应用程序。3. AJAX源...
**Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,因为它...
如下所示: <!DOCTYPE html> <html> <head> <title>排课设置<...content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">...link rel="stylesheet
.NET提供了System.Web.Script.Serialization命名空间下的JavaScriptSerializer类,用于将.NET对象序列化为JSON字符串,或者将JSON字符串反序列化为.NET对象。例如: ```csharp JavaScriptSerializer serializer = ...
**AjaxRequest(Ajax使用包)** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AjaxRequest是实现Ajax功能的一个工具包,它...
本文将深入探讨如何测试服务器空间是否支持微软的AJAX控件以及URLRewriter.dll组件,并讲解这两个关键组件的功能和配置方法。 首先,微软的AJAX(Asynchronous JavaScript and XML)控件是.NET Framework的一部分,...
Ajax从入门到精通.pdf 本书籍旨在深入浅出地介绍 Ajax 技术,从基础知识到高级应用,全面覆盖 Ajax 的核心概念、技术原理、实现方法和实践应用。书籍的主要内容包括: 1. Ajax 概述:本书首先介绍了 Ajax 的概念、...
ajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用xml ajax调用htmlajax调用...
ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础...
使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤
**Ajax 概述** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON格式传输数据,使得用户...
在网页开发中,分页是一种常见的用户界面设计,用于...前端通过AJAX与后端通信,后端处理请求并从数据库获取数据,然后将数据返回给前端,前端再更新页面内容。这个过程提升了用户体验,使得浏览大数据集变得更加流畅。
AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,实现了网页的异步交互,提高了用户体验。在ASP.NET框架...
在IT行业中,jQuery和Ajax是两个非常重要的技术,它们在构建动态、交互性强的Web应用程序时发挥着关键作用。jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。Ajax...
**Ajax 教程** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其是在数据...
5. PHP将结果以JSON或XML格式返回给AJAX。 6. JavaScript监听请求状态,当请求完成时,解析返回的数据,并更新页面上的相应元素。 在压缩包“20120713”中,可能包含了这个示例的源代码,包括HTML文件、JavaScript...