何时合并方法 - 迁移

时间:2011-11-08 21:53:05

标签: javascript

下面是我对ajax的7个回调方法。它们在结构上都是相似的,所以如果我想要将代码抽象为泛型方法,请调用这些泛型方法,并使用输入参数/参数修改它们。

但是,我试图确定合并值得努力的地方。什么是最佳做法?

请问我合并这些方法?

/*
consolidate these ajax call back functions
*/

function ajax_signup(a,b)
  {
  c=check_aml(a.slice(0,6));
  if(c===0)
    {
    document.f1_1.submit();  // on pass submit the file upload form
    }
  else if(c===1)
    {
    document.getElementById(b).innerHTML=a; // on fail report to user
    }
  else if(c===2)
    {
    a=a.substr(6);
    alert('php error: ' + a); // on php error
    }
  }

function ajax_signin(a,b)
  {
  c=check_aml(a.slice(0,6));
  if(c===0)
    {
    m6();  // on pass reload the page
    }
  else if(c===1)
    {
    document.getElementById(b).innerHTML='';  // on fail report to the user
    document.getElementById(b).innerHTML=a;  
    }
  else if(c===2)
    {
    a=a.substr(6);
    alert('php error: ' + a);  // on php error
    }
  }

/*
Takes in sturctured data and convert to xhtml - remove the conversion into another method
*/

function ajax_tweet(a,b)
  {
  var c,d,e,f='';
  var g=a.slice(0,6);  // prepare status
  var h=check_aml(g);  // check for status   
  if(h===0)
    {
    c=a.split(/\|\|/);
    for(e=0;e<c.length;e++)
      {
      d=c[e].split(/\|/);
      f=f+'<div class="Bb2b"><img class="a" src="pictures/' + d[0] + '.jpg" alt=""/><a class="a" href="javascript:void(0)\">' + d[1]  + ' posted ' + view_date(d[2],d[3]) + '</a><br/><p class="c">' + d[4] + '</p></div>';
      }
    m2(b,f);
    }
  else if (h===1)    // on tweet fail - add in graceful fail <xx_f>
    {;}
  else if (h===2)
    {
    a=a.substr(6);
    alert('php error: ' + a);  // on php error 
    }
  }

/*
Ajax call-back methods - do nothing but report a PHP error if it ocurred.  On a success of and add or delete there is no message to the user.  Need to add in a graceful fail, ie. <xx_f>.
*/ 

function ajax_bookmark(a,b)
  {
  c=a.slice(0,6);
  d=check_aml(c);
  if(d===0)
    {;}
  else if (d===1)
    {;}
  else if (d===2)
    {
    a=a.substr(6);
    alert('php error: ' + a); 
    }
  }

function ajax_bookmark_add(a,b)
  {
  ajax_bookmark(a,b);
  }

function ajax_bookmark_delete(a,b)
  {
  ajax_bookmark(a,b);
  }

/*
Place holder for method parameter
*/  

function ajax_null()
  {
  }

1 个答案:

答案 0 :(得分:0)

查看使用模块模式或常规对象实例化的分组。