如何在Javascript中存储请求URL以满足DRY原则?

时间:2008-09-27 23:27:49

标签: javascript ajax web-services design-patterns

Javascript中是否有常用的模式用于存储将在AJAX应用程序中请求的端点的URL?

例如,您是否会创建一个“服务”类来抽象URL?

4 个答案:

答案 0 :(得分:1)

您可以创建ValuePairs的集合,您可以在其中存储每个URL值和标识符:

function ControlValuePair(Id, Value)
{   
    this.Id = Id;
    this.Value = Value;
}

function CreateCollection(ClassName)    
{
    var obj=new Array();
    eval("var t=new "+ClassName+"()");
    for(_item in t)
        {
            eval("obj."+_item+"=t."+_item);
        }
    return obj;
}

function ValuePairsCollection()
{
    this.Container="";
    this.Add=function(obj)
    {
        this.push(obj);
    }
}

稍后您可以遍历集合或查找ID。

答案 1 :(得分:0)

您的问题与this already-answered question类似吗?如果是这样,答案是否也适用于您的代码?

答案 2 :(得分:0)

存储全局变量的地方是个人选择的问题。最好将它们放在一个对象中以避免全局命名空间中的冲突,所以是的,名为Service的全局对象将是存储URL以及在多个地方使用的其他字符串的好地方。

答案 3 :(得分:0)

我使用过类似的东西(在Rails中使用):

NAMESPACE.categories.baseUri = '/categories';
NAMESPACE.categories.getUri = function(options)
{
  options = options || {};
  var uri = [NAMESPACE.categories.baseUri];

  if(options.id)
  {
    uri.push(options.id); 
  }
  if(options.action)
  {
    uri.push(options.action);
  }
  if(options.format)
  {
    uri.push('?format=' + options.format);
  }

  return uri.join('/');
}