2014-03-12 54 views
0

正如標題所示,我不確定管理從多個不同URL獲取的數據的最佳方式。什麼是管理基於URL的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,或許使用了'data'屬性,但這看起來也很麻煩並且暴露了數據。

管理與URL相關的JSON數據的行業約定或「最佳實踐」是什麼?並不總是與URL路徑名特別相關?

感謝,

湯姆

+0

但是當我想調用一些不一定與URL相同的數據時,我遇到了問題。你能解釋什麼意思? – Triode

+0

例如,如果數據可以從以下URL中提取:'api/group/posts/top',但實際的URL是:'url.com/group/posts/highest-rated' – Thomas

回答

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

}); 
+0

這似乎是一種有效的方法處理URL的謝謝。 – Thomas

相關問題