如何在C#Web应用程序中为FullCalendar创建JSON订阅源

时间:2016-01-15 14:08:37

标签: c# mysql json fullcalendar

我在网上发现了很多关于在FullCalendar中使用JSON Feed的文章。我无法找到的是对大局的一些基本了解。

我有一个Web应用程序,可以将用户特定事件从我们的数据库加载到FullCalendar中。目前我查询数据库并在启动时将所有内容传递给FullCalendar。这开始花费太长时间,所以我正在寻找其他选择。

使用JSON提要,我是否有一个完全独立的进程,该进程始终在包含特定用户事件的服务器上运行?如何支持具有要在其日历上显示的用户特定事件的多个用户?当用户从我的C#代码启动Web应用程序时,JSON提要是否开始?

1 个答案:

答案 0 :(得分:0)

  

使用JSON提要,我是否有一个完全独立的进程   始终在包含特定事件的服务器上运行   用户?

  • 您确实需要在服务器上单独使用某些内容,但它不是始终在运行的进程。指定订阅源的方式是在fullCalendar事件选项中传递URL而不是事件数组或函数。当首次显示日历时,每次用户导航到不同的时间段时,fullCalendar将使用ajax来执行获取http请求,并且它将自动将查询参数添加到URL所需的时间段的开始和结束时间显示。因此,您需要提供的是网址可以访问的任何内容,并且可以返回该时间段的事件数据。这可能是一个网页,它将执行数据库查询并返回一个JSON事件数组,而不是像网页通常那样返回html。一些数据库(我用SQL / Anywhere完成它)可以实现一个Web服务,您可以通过url直接访问数据库服务器上的特定端口号,Web服务可以作为存储过程执行查询并返回结果集以JSON格式设置,无需中间网页,但如果您的数据库无法做到这一点,那么建立一个小网页作为数据库的中介是一个很好的方法。
  

如何支持具有用户特定事件的多个用户   要在他们的日历上显示?

  • 我建议您将另一个查询参数添加到事件订阅源的ajax请求中,并传递要显示其事件的userID。 url之后的events选项中的第二个参数是" data:"这是您可以添加其他参数以传递url的查询字符串的位置。它可以是一个功能。有关详细信息,请参阅事件数据的fullCalendar文档。传递了用户ID后,URL的另一端的任何内容都可以使用该用户ID仅检索该用户的事件。当然,用户ID必须是存储在数据库中的事件数据的一部分才能够做到这一点。
  

当用户启动Web时,JSON提要是否已启动   从我的C#代码申请?

  • 不准确。它是在第一次显示日历时开始的;它返回该显示所需的第一批数据,然后停止。每当用户移动到不同的时间段时,这又发生了。每次fullCalendar发出数据请求时,它都会按需运行。它的工作方式与Web服务器(和数据库)通常响应请求的方式相同。当然,Web服务器和数据库通常 一直在后台运行,但提供事件数据的特定网页或Web服务仅在每次Web服务器和数据库的要求下运行需要新的数据。