基于URL管理JSON数据的专业/最佳方式是什么?

时间:2014-03-12 21:59:56

标签: javascript jquery mysql ajax json

正如标题所示,我不确定管理从多个不同网址中提取的数据的最佳方式。

我有一个网站,我可以从一堆不同的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数据的行业惯例或“最佳实践”是什么?

谢谢,

汤姆

1 个答案:

答案 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);
    });

});