如何从SharePoint中搜索单页面应用程序(SPA)?

时间:2015-09-21 14:04:21

标签: javascript asp.net search sharepoint single-page-application

我们正在开发一个使用knouckout和大量其他库在ASP.NET MVC中开发的单页面应用程序(SPA)。路由将在前端完成,也许我们将使用crossroads.js。使用slickgrid.js在虚拟网格中显示了大量信息。使用AJAX从后端获取所有数据。

现在,如果您想从SharePoint抓取并索引此类网站,您将如何进行此操作?如果您只是加载没有javascript的主页面,它几乎是空的。

更新

在对此问题进行更多调查后,我得出结论,至少有两种可能的解决方案可以解决这类问题。

可能的解决方案1:渲染HTML

此方法涉及检测SP爬网程序正在爬网您的站点,然后返回爬网程序的静态HTML页面。 PhantomJS可能会用于此目的。然而,这个解决方案有几个不确定的方面,我怀疑它会涉及很多工作。

可能的解决方案2:将数据导入SharePoint

如下面Josh所述,您可以将要爬网的数据导入SharePoint。然后,可以将SharePoint配置为对数据进行爬网,并且数据不再依赖于Javascript,因为它位于SharePoint内部。我认为这是最好和最简单的解决方案,并将Josh的答案标记为已接受的答案。

1 个答案:

答案 0 :(得分:0)

虽然我看到这个问题得到了很多关闭请求,但我确实遇到了关于之前项目的这个问题。 Sharepoint将无法通过SPA索引数据被操作的页面,但在SP内部,您可以将外部数据源连接到搜索服务,从而在SPA中公开数据。然后,您将编写与所公开数据的内容类型相关联的自定义搜索结果,以使结果比仅数据行更友好。您可以在SPA中创建一个入口点,该入口点可以接收带有参数的URL,这样您就可以一次性将用户从搜索结果发送到SPA。

此解决方案有许多相互关联的概念,因此我建议您考虑连接外部数据源并将其添加到SP的爬网索引中。然后,从公开的对象中创建内容类型。最后,为内容类型添加自定义搜索结果模板。 MSDN将成为您的朋友,您的SP管理员也将如此。