如何在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('/'); }