我们有一个遗留应用程序(经典ASP和ASP.net的混合),它有一些Ajax内容丰富的页面.期望网站的用户在页面上执行一系列任务,可以跨越相当长的时间说,15-30分钟.
其中一个要求是登录到站点的用户在15分钟不活动后自动注销.目前,这是通过使用元标记在页面中不活动15分钟后将用户重定向到注销页面来实现的.
<meta name='Refresh' http-equiv="Refresh" content="900;URL=/someurl/logout.asp">
我们遇到的问题是,尽管与服务器进行了许多AJAX交互,浏览器仍然认为页面上没有任何活动.因此,在浏览器认为不活动的15分钟后,即使用户正在做某事,用户也会自动注销.
受此留言板帖子的启发,我们试图通过使用javascript(JQuery)来解决烦恼
下面将是一个事件处理程序,例如单击页面上的保存等.为简单起见,这里是将页面加载修改为5秒的刷新时间
$(document).ready(function() {
var selector = 'meta[name=Refresh]';
var content = $(selector).attr("content"); //"900;URL=/someurl/logout.asp"
$(selector).attr("content", "5;URL=/someurl/logout.asp");
});
Run Code Online (Sandbox Code Playgroud)
将重置(重新)设置元标记内容的页面刷新计时器的意图将被重置.不幸的是,这似乎不起作用(在IE中).
由于这是一个遗留应用程序,因此有些决定即使用元标记等.问题是,有没有办法让元标记刷新与Ajax应用程序和平共存?我做错了什么,有办法解决这个问题吗?
我正在尝试使用UIKit内置的刷新图标在标准UIView中使用UIButton显示一个小的刷新按钮.如果我使用UIBarButtonItem它可以创建为刷新按钮,但我在其他地方使用此图标没有运气.
到目前为止,我试图使用下面的代码"窃取"UIBarButtonItem的刷新图像,但返回的图像是nil:
UIBarButtonItem *temp = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil];
self.refreshButton.imageView.image = temp.image;
[temp release];
Run Code Online (Sandbox Code Playgroud)
有什么建议,还是我必须自己提供刷新图片?
我正在WPF中构建一个实时多线程应用程序,但我在更新UI时遇到了困难.
我有一个后台工作线程,其中包含确定要发送到市场的交易的逻辑.当有效交易发送到市场时,我通过主应用程序窗口中的事件接收这些交易的状态更新.我有其他活动,我收到实时价格更新.
通过这些活动,我更新了UI.现在看来,我在整个应用程序中如此迅速地接收事件,UI无法跟上接收事件的速度 - 导致UI缓慢更新或根本不更新.基本上UI冻结了.在所有事件都被触发后,UI再次缓慢响应.一旦完全响应,UI就会显示我期待的数据.
我的问题是,如何在接收事件的同时实时更新UI?我一直在努力解决这个问题,所以任何帮助都会受到赞赏.
提前致谢!
我正在尝试实现内容浏览,就像在用户浏览照片时在Facebook上完成一样.我想每个人都熟悉那张照片浏览,你可以点击"下一步"和"上一张",然后立即获得下一张或上一张照片(你也可以使用方向键导航).
例如,当您单击"下一步"时,您会注意到页面没有刷新 - 只有内容.起初我以为它是使用普通的ajax调用完成的,在这种情况下只刷新"内容"的图像,描述和注释.但后来我注意到我的浏览器"位置"工具栏中的URL也被更改了!我尝试使用Firebug进行检查,发现当您单击"下一步"时,只下载了下一张照片,我仍然不知道评论和图像元数据(描述,时间,标签......)的加载位置.
有人可以解释一下这项技术是如何完成的 - 页面URL更改没有页面刷新(如果从缓存刷新,甚至没有页面"闪烁").我知道如何使用ajax更改页面内容,但该页面的URL始终保持不变.如果我点击"刷新"按钮,我会再次获得第一页.但不是在Facebook上,因为即使"window.location"每次都改变而没有实际的重定向.
我注意到的另一件事是底部工具栏(应用程序,聊天,...)"总是在顶部".即使您更改页面,此工具栏也不会刷新并始终保持在顶部 - 它甚至不会像其他刷新的页面一样"闪烁"(从Web服务器或从本地缓存).我想这是与上面相同的技术 - 某种"假"重定向或其他什么?
答案是pushState
if (window.history.pushState)
window.history.pushState([object or string], [title], [new link]);
Run Code Online (Sandbox Code Playgroud)
你会笑:)
如何检测对数据库所做的最新更新,并在发生更改时以静默方式刷新页面?
假设数据库访问如下:
$host = "localhost";
$username = "root";
$password = "root";
$db = mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db('ccr') or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
任何想法和样品将不胜感激.谢谢.
我必须流式传输网络摄像头视频,所以我使用ustream来做这个,它为我生成一个flash嵌入代码,我有一个关闭/打开灯的按钮,但是当我按下按钮时它会刷新整个页面,所以flash组件.
有一些方法不刷新页面仍然发送到命令?那么现在就是这样:
<h:form id="form_supervisory">
<h:panelGrid>
<h:column>
<iframe width="480" height="296" src="http://www.ustream.tv/embed/9599890" scrolling="no" frameborder="0" style="border: 0px none transparent;"> </iframe>
<h:commandButton value="Lâmpada" action="#{supervisoryc.invertBo}" />
<h:graphicImage value="#{supervisoryc.imageBo}" />
</h:column>
</h:panelGrid>
</h:form>
Run Code Online (Sandbox Code Playgroud) 如何在MVC中刷新当前页面.
[HttpGet]
public ActionResult Request()
{
if (Session["type"] != null && Session["resulttype"] != null)
{
return View();
}
else
{
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我想在其他部分刷新我的页面.那是返回null值的时候.
我有一个带有statusLabel的Windows窗体(C#.NET),我似乎无法在事件处理程序方法的过程中更新.我的代码看起来像这样......
void Process_Completed(object sender, EventArgs e)
{
string t = "Process is finished!";
this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t });
}
void Process_Started(object sender, EventArgs e)
{
string t = "Process has begun";
this.Invoke(new StatusLabelUpdator(updateStatusLabel), new object[] { t });
}
private delegate void StatusLabelUpdator(string text);
private void updateStatusLabel(string text)
{
StatusLabel1.Text = text;
statusStrip1.Invalidate();
statusStrip1.Refresh();
statusStrip1.Update();
}
Run Code Online (Sandbox Code Playgroud)
当我运行代码时,一旦进程启动,就会触发Process_Started方法,几秒钟后会触发Process_Completed方法.由于某种原因,我不能让状态标签显示"过程已经开始".它只显示"过程完成!".正如您所看到的,我已尝试使包含状态标签但未成功的状态条无效,刷新和更新.我无法在statuslabel本身上调用update/refresh/invalidate,因为这些方法不可用.我究竟做错了什么?
添加信息:
通过单击窗体上的按钮启动"进程",该窗体在单独的类中调用方法,如下所示:
public void DoSomeProcess()
{
TriggerProcessStarted();
System.Threading.Thread.Sleep(2000); // For testing..
TriggerProcessComplete();
}
Run Code Online (Sandbox Code Playgroud)
在TriggerProcessxxxx方法中,我使用此代码触发事件...
var EventListeners = EH.GetInvocationList(); //EH is the …Run Code Online (Sandbox Code Playgroud) 我的网站分为单独的模块.每个模块都有自己的特定css或js文件/protected/modules/my_module/assets/css或jsjs文件.当我第一次使用使用我的资产的页面时,Yiis资产管理器创建文件夹.不幸的是,如果我在我的文件中更改某些内容 - Yii不会重新加载我的css或js文件.我必须手动删除/projects/assets文件夹.在开发应用程序时,这真的很烦人.
有没有办法迫使Yii每次请求重新加载资产?
最近我在DEV Windows 7机器上安装了IE 11(以前的IE 9).每当我按下或打开F12 Developer工具时,它都会重新加载页面.反正有没有阻止这种行为?
提前致谢 :)