2009-02-15 32 views
2

我要問,是什麼(這是最簡單的新手Web開發人員即方式)消費/集成數據,我讓現有的最佳途徑在我的網站上,進入他們自己的網站。最好的技術,讓我的網站的消費者動態數據納入自己的網站

我有一個網站寫在asp.net/sql服務器後端。

我有客戶希望能夠將他們的網站中的數據選擇(例如數據表和一些圖像長度不同,並且對於每個用戶不同)納入他們的網站,以便數據看起來像它屬於他們,並且被他們烙上了(理想情況下,數據會以默認的css格式發送給他們,但他們可以根據自己的需要定製)。當我的網站上的數據發生變化時,其網站上的數據需要更改。

我希望我的數據用戶能夠訪問我的網站,登錄,然後能夠從我的網站上「複製」自定義的腳本/代碼,將其粘貼到他們的中,然後讓它工作,重要的是他們的網站被寫入(即純html,php,asp.net或其他)。

我假設某種JavaScript腳本將是最好的方式去,但我不知道如何使這個完全簡單的用戶和腳本可能包含(JavaScript不是我的強點呢)。即我可以在客戶網站上的JavaScript調用一個asp.net腳本我的服務器上,然後流回到HTML到他們的網站..

我相信一定有這樣做過的例子,可以有人點我在正確的方向?

編輯:讓我試着舉一個我想要做的更好的例子

我的應用程序是不是一個房地產應用程序,但讓我們假設它我們(假裝realtor.com的MLS數據庫)。現在國內的每個房地產經紀人都有自己的網站,並且它們都是用各種語言編寫的,所以我不能假定任何有關數據消費者的事情,也不能假定他們有任何編程專業知識。

如果我是realtor.com所有者,我希望每個房地產經紀人都能夠訪問我的網站,複製一段代碼(就像我說過的,也許是一些javascript,但我不確定),回到他們的網站,並將其粘貼到他們的網頁源,然後當他們的用戶去「Joesrealty.com」,並點擊「顯示所有屬性出售」腳本/代碼/頁面實際上將拉下我的網站的HTML在我的網站(realtor.com)上執行某些操作並檢索該代理商出售的所有屬性列表(例如附帶圖片的表格)。

我知道我在一個大名字網站上的某個地方看到了很好的實現,但是對於我的生活來說,我無法記住我在哪裏看到它,也從來沒有打擾過當時試圖看看他們使用了什麼技術。

回答

5

我的客戶,希望能夠整合數據(...)的選擇到他們的網站上,讓數據看起來屬於他們,並通過他們

品牌

許多網站通過JavaScript代碼片段使此功能可用,例如TechnicalJobs.ie

用戶將一些javascript代碼粘貼到他們的頁面中。此代碼會回覆您的網站以提取最新的數據,然後將其顯示在客戶的網站上。

我們可以發回的新部件無樣式列表,並允許用戶樣式的CSS來調整他們的網站上顯示。

在你的頁面,告訴用戶複製下面的JavaScript在自己的網頁:

<script src="http://www.yoursite.com/widgets.asp?action=getNewWidgets" 
    type="text/javascript"></script> 

<script type="text/javascript"> 
    showWidgets('widget-container', 'widget-list'); 
</script> 

在您的網站,widgets.asp將負責從數據庫中查找新的小部件的數據。它會將數據拉到一起,然後以JSON-encoded格式輸出。邏輯全部以ASP或您選擇的語言處理,並以下面列出的格式輸出。 此頁面還將返回showWidgets方法,該方法處理將數據轉換爲在用戶網站上顯示的方式。

widgets.asp的最終輸出看起來應該是這樣的:一旦用戶在他們的網頁中嵌入你的js代碼

// Widget product data 
var widgets = [ 
    { 
     "url":"http:\/\/www.yoursite.com\/widgets\/foo-widget", 
     "title":"Brand new Foo Widget, available now!" 
    }, 
    { 
     // More widget details.. 
    } 
]; 

// Function to display list of widgets on calling page  
function showWidgets(container_div, style) 
{ 
    // Start building the html for the list 
    var html = "<ul class='" + style + "'>"; 

    // Loop through all of the widgets we have, ading to list 
    for (i = 0; i < widgets.length; i++) 
    { 
     html += "<li><a target='_blank' href='" + widgets[i].url + "'>"; 
     html += widgets[i].title; 
     html += "</a></li>"; 
    } 
    html += "</ul>"; 

    // We have the html, now write to the container  
    // If the user hasn't created this already, we'll make it  
    if (document.getElementById(container_div)) 
    { 
     document.getElementById(container_div).innerHTML = html;  
    } 
    else 
    { 
     // Target div wasn't made by user, create it inline 
     document.write("<div id='" + container_div + "'>"); 
     document.write(html); 
     document.write("</div>"); 
    } 
} 

widgets.asp輸出將寫出新的數據的照顧。您可以指定樣式等,或者將其留給最終用戶根據其網站的其他部分進行設置。

1

你的要求列表似乎是非常寬泛的。

我打算建議構建某種RESTful Web服務,通​​過這種服務用戶可以以最合適的格式使用您的數據。這可以是XML或JSON,如果他們有能力解析它,或者他們只是想在他們的頁面中嵌入iframe,它可以返回純HTML。

看看一些雅虎的Web服務,並得到他們是如何做的事情的想法:

http://developer.yahoo.com/

0

你可以公開Web服務,他們可以打電話。在asp.net中創建Web服務非常簡單。

您可以爲要公開的不同數據元素創建方法,客戶可以使用方法中提供的任何參數調用服務,以便根據需要進一步過濾數據。

1

任何類型的Web服務都需要在消費端進行編程,所以這不適合您。 你正在做的事通常是用Javascript完成的。看看亞馬遜爲聯營網站提供的服務,Technorati,......還有很多其他的例子。

它的工作方式 - 您的客戶端在您的站點中包含一個JavaScript文件,然後作爲瀏覽器中的頁面呈現的一部分執行,並且您可以將內容包含在生成的輸出流中。 理解您必須爲腳本提供服務非常重要。由於潛在的安全風險,瀏覽器會阻止跨站點腳本。 例如,爲了包括亞馬遜的搜索小插件,你只需要把下面的代碼到您的網頁(我刪除了清晰的查詢字符串參數):

<SCRIPT charset="utf-8" type="text/javascript" 
     src="http://ws.amazon.com/widgets/q?..."> 
</SCRIPT> 
<NOSCRIPT> 
<A HREF="http://ws.amazon.com/widgets/q?..."> 
     Amazon.com Widgets</A> 
</NOSCRIPT> 

如果瀏覽器不具備的Java腳本啓用,它只顯示一個鏈接。你可以在這個環繞DIV標籤來控制你的小部件的大小。 你唯一的選擇是<IFRAME>

0

根據參數或content-accept-header創建一個可以以不同格式生成響應的URL;我建議使用HTML,XML和JSON。對於希望使用IFRAME或具有Javascript的客戶端來說,HTML可以爲希望在輸出數據之前處理數據的客戶端執行document.write,XML和JSON,無論是使用客戶端JavaScript還是使用他們正在使用的任何語言的服務器端。您可以爲您的客戶創建一個Javascript來使用它獲取HTML並執行document.write以及包含一些默認的CSS。