正如标题所示,我不确定管理从多个不同网址中提取的数据的最佳方式。
我有一个网站,我可以从一堆不同的URL中提取JSON数据。
作为一个例子:我有一个页面,其中包含许多与具有以下URL的组相关的帖子:
url.com/group/posts
我可以使用以下代码段调用数据:
$(function(){
var url = ('/api/group/posts');
$.getJSON(url, function(data){
console.log(data);
});
});
这会使数据恢复正常。但是,我需要一种动态的方法来调用该URL而不使用静态字符串。
我最初想的是使用以下内容:
var url = ('/api'+String(window.location.pathname));
但是当我想调用一些不一定与URL相同的数据时,我遇到了问题。
我总是可以使用一堆'if语句'来查询它是否是一个相关的页面,但这感觉就像一个混乱的解决方案。
我还想到了在特定页面DOM中使用相关的URL / Path,可能使用了“数据”属性,但这似乎也很混乱,并且数据曝光。
管理与URL路径名并不总是特别相关的URL相关JSON数据的行业惯例或“最佳实践”是什么?
谢谢,
汤姆
答案 0 :(得分:1)
如果大多数时候它与数据URL匹配,那么获取窗口的当前路径将会很好地工作。只需在URLMappings对象中创建一个条目,即可跟踪规则的任何异常。通过这种方式,您可以将它们保存在一个地方。
$(function() {
// Create an object to keep track of any exceptions.
var URLMappings = {
'/api/group/posts/highest-rated': '/api/group/posts/top',
'/api/group/posts/lowest-rated' : '/api/group/posts/bottom',
'/api/group/posts/most-viewed' : '/api/group/posts/active'
};
// Get the URL by using the path name of the window.
var URL = '/api' + window.location.pathname;
// Check if an exception exists for the current URL.
if (typeof URLMappings[URL] != 'undefined') {
URL = URLMappings[URL];
}
// Get the data.
$.getJSON(URL, function(data) {
console.log(data);
});
});