2009-02-15 36 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。