【问题标题】:What is the professional/optimum way to manage JSON data based on URLs?基于 URL 管理 JSON 数据的专业/最佳方式是什么?
【发布时间】:2014-03-12 21:59:56
【问题描述】:

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

我有一个网站,我可以从一堆不同的 URL 中提取 JSON 数据。

例如:我有一个页面,其中包含许多与具有如下 URL 的组相关的帖子:

url.com/group/posts

我可以用以下sn-p调用数据:

$(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/路径,可能使用“数据”属性,但这似乎也很混乱,并且会暴露数据。

管理与 URL 路径名并不总是特别相关的 URL 相关 JSON 数据的行业惯例或“最佳实践”是什么?

谢谢,

汤姆

【问题讨论】:

  • 但是当我想调用一些不一定与 URL 相同的数据时遇到了问题。什么意思,能解释一下吗?
  • 例如,如果可以从以下 URL 拉取数据:'api/group/posts/top' 但实际 URL 是:'url.com/group/posts/highest-rated'

标签: javascript jquery mysql ajax json


【解决方案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);
    });

});

【讨论】:

  • 这似乎是处理 URL 的有效方法,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多