使用ajax更新一瞥标签插件数据
Update glimpse tab plugin data using ajax
我正在尝试创建一个自定义的一瞥插件,显示我们从我们的服务器的一些信息。
当我打开页面时,我得到我需要的所有数据,但我希望能够每隔20秒更新一次此数据(或当我单击选项卡中的按钮时),而无需刷新整个页面。
我已经设法将我的JavaScript添加到页面并订阅render
和shown
事件,但我不知道如何在发生某些事情时更新选项卡内容。
这是我的标签
public class EagleTab : AspNetTab
{
private readonly IGlimpseInterventionService _glimpseInterventionService;
public EagleTab()
:this(new GlimpseInterventionService()){}
public EagleTab(IGlimpseInterventionService glimpseInterventionService)
{
_glimpseInterventionService = glimpseInterventionService;
}
public override object GetData(ITabContext context)
{
var interventionSection = new TabSection("Last modification", "Last Message","Time since last modification","CSE","DPS", "Start Date","End date");
var now = DateTime.Now;
var twoHoursThresshold = new TimeSpan(1,0,0);
foreach(var inv in _glimpseInterventionService.GetActiveInterventions()){
var timeSinceLastMod = now - inv.LastModification;
interventionSection.AddRow()
.Column(inv.LastModification)
.Column(inv.LastMessage)
.Column(timeSinceLastMod.ToString("c"))
.Column(inv.CSEName)
.Column(inv.DPSName)
.Column(inv.StartDate)
.Column(inv.EndDate).WarnIf(timeSinceLastMod<twoHoursThresshold);
}
var plugin = Plugin.Create("Section", "Data");
plugin.AddRow().Column("Active interventions").Column(interventionSection);
return plugin;
}
public override string Name
{
get { return "Eagle Tab"; }
}
}
这是JavaScript
(function ($, pubsub, tab, render) {
'use strict';
function refreshTabContent(){
//what am I supposed to do here
}
pubsub.subscribe('action.panel.rendering.eagle_glimpse_plugins_eagletab', function (args) {
});
pubsub.subscribe('action.panel.showed.eagle_glimpse_plugins_eagletab', function (args) {
setTimeout(refreshTabContent,30000);
});
})(jQueryGlimpse, glimpse.pubsub, glimpse.tab, glimpse.render);
正如你在js中看到的,有一个叫做refreshTab
的函数,我想在那里更新标签的内容。
我知道我可以做一个Ajax调用我的控制器得到数据,然后尝试使用jQuery更新面板,但这只是接缝有点错,我希望有一个更好的方法。
任何关于一瞥客户端可扩展性的教程或文档都是受欢迎的。
你离你的目标已经有相当大的距离了。不幸的是,虽然没有真正的方法从一个选项卡之外的请求获取数据。也就是说,有一种从服务器获取数据的"一瞥"方式。这是一个很小的语义差异,但它与服务器数据和请求数据有关。
如果我是你,我可能会把它写为一个客户端标签,而不是实现AspNetTab。这里有一些如何做到这一点的例子。接下来,我将实现一个资源。不幸的是,它没有很好的记录,但幸运的是,它不是很难工作。
这个repo有一些关于如何使用客户端选项卡返回资源的示例。具体来说,库存选项卡是一个选项卡,它允许用户将鼠标放在网站中的产品上,并让选项卡显示库存水平。这里是资源,这里是与资源交互的客户端代码(考虑到您目前所拥有的,这应该很容易适应。最后,作为奖励,如果您还没有看到它,下面是如何将脚本包含到页面中的方法。请注意,该repo上的提交是一步一步地指导事情如何组合在一起的。
如果有帮助请告诉我。
- Jquery标签插件粘贴问题
- 使用插件收听Firefox标签的http请求
- Jquery验证插件在与<发件人:form>标签
- javascript库/jquery插件,生成可编辑的“;标签”;
- 使用细丝组tablesaw插件时未显示标签
- 如何使用Bootstrap标签折叠插件在标签中获取h4标签
- 火狐插件不会打开带有url的新标签
- 需要在重力表单wordpress插件中的表单标签中添加代码
- jQuery 3D标签云插件在IE和chrome中不起作用
- 将字符串标签添加到 jQuery Sparklines 插件的每个值
- 火狐插件看到标签,但哪些标签
- JQuery类似于facebook的插件,用于处理标签的添加/删除
- 获取jquery插件中点击标签的索引值
- Firefox插件-如何关闭标签打开后,他们
- 使用jQuery选择的插件制作标签建议
- 执行脚本如果插件<对象>无法加载标签
- 修改jQuery标签插件,在加载时显示特定的标签[includes JSFiddle]
- 使用xoxco标签插件向标签栏添加标签
- jQuery简易标签插件,无过渡
- 使用ajax更新一瞥标签插件数据