如何在Javascript中存储请求URL以满足DRY主体?
时间:2020-03-06 14:50:05 来源:igfitidea点击:
Javascript中是否有任何常用的模式来存储将在AJAX应用程序中请求的端点的URL?
例如,我们是否将创建一个"服务"类来抽象化URL?
解决方案
问题类似于这个已经回答的问题吗?如果是这样,答案也适用于代码吗?
我们将全局变量存储在何处是个人选择的问题。最好将它们放在一个对象中,以避免全局命名空间中的冲突,因此,是的,一个名为Service的全局对象将是存储URL以及在多个位置使用的其他字符串的一个好地方。
我们可以创建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。
我已经使用过类似的东西(在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('/');
}

