`

ajax,请给别人一点空间

阅读更多

前天修复一个系统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,我想到的是,多给别人留一些可变化的空间比较好。

 

 

 

 

 

 

分享到:
评论
1 楼 sscsacdsadcsd 2015-07-14  
开闭原则么 就这几个字 好难哦
还是有框架逼我做这种事比较好

相关推荐

    AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX

    AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX AJAX

    Ajax中文手册 API

    很不错的Ajax开发草考文档,方便快捷1. AJAX介绍AJAX是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接受数据的技术。2. AJAX实例AJAX可以用来创建更多交互式的网络应用程序。3. AJAX源...

    ajax代码 ajax代码

    **Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这种技术可以提升用户体验,因为它...

    layui Ajax请求给下拉框赋值的实例

    如下所示: <!DOCTYPE html> <html> <head> <title>排课设置<...content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">...link rel="stylesheet

    ajax+json实例

    .NET提供了System.Web.Script.Serialization命名空间下的JavaScriptSerializer类,用于将.NET对象序列化为JSON字符串,或者将JSON字符串反序列化为.NET对象。例如: ```csharp JavaScriptSerializer serializer = ...

    AjaxRequest(Ajax使用包)

    **AjaxRequest(Ajax使用包)** Ajax,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AjaxRequest是实现Ajax功能的一个工具包,它...

    测试服务器空间是否支持微软AJAX的控件,及URLRewriter.dll组件

    本文将深入探讨如何测试服务器空间是否支持微软的AJAX控件以及URLRewriter.dll组件,并讲解这两个关键组件的功能和配置方法。 首先,微软的AJAX(Asynchronous JavaScript and XML)控件是.NET Framework的一部分,...

    ajax调用xml ajax调用html

    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使用js包)

    使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤

    深入浅出Ajax(Head Rush Ajax) 源码 书中代码

    **Ajax 概述** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心是利用JavaScript与服务器进行异步数据交换,通过XML或者JSON格式传输数据,使得用户...

    Java Ajax分页,jsp ajax分页

    在网页开发中,分页是一种常见的用户界面设计,用于...前端通过AJAX与后端通信,后端处理请求并从数据库获取数据,然后将数据返回给前端,前端再更新页面内容。这个过程提升了用户体验,使得浏览大数据集变得更加流畅。

    AJAX安装.rar

    AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器交换数据并更新部分网页内容,实现了网页的异步交互,提高了用户体验。在ASP.NET框架...

    jquery+ajax例子

    在IT行业中,jQuery和Ajax是两个非常重要的技术,它们在构建动态、交互性强的Web应用程序时发挥着关键作用。jQuery是一个高效、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互。Ajax...

    ajax教程

    **Ajax 教程** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验,尤其是在数据...

    php+ajax例子

    5. PHP将结果以JSON或XML格式返回给AJAX。 6. JavaScript监听请求状态,当请求完成时,解析返回的数据,并更新页面上的相应元素。 在压缩包“20120713”中,可能包含了这个示例的源代码,包括HTML文件、JavaScript...

    ajax中的变量如何传递给外面

    ajax中的变量传递到外面 在ajax中加上参数 async:false, 即可

Global site tag (gtag.js) - Google Analytics