相关疑难解决方法(0)

IE 11 + SignalR无法正常工作

在IE 11中使用signalR时会发生奇怪的行为.场景:

我们有一些调度程序类型的功能,其中调度程序执行某些操作,而另一个用户可以实时查看更新(查询).发送的参数很好,可以在IE客户端进行更新,而无需打开开发人员控制台.

但是一个不起作用的方法(performUpdate- 获取查询结果 - 这是服务器>客户端调用,而不是客户端>服务器>客户端) - 永远不会被调用.当开发者控制台打开时,它只会得到打电话.

这是我尝试过的:

为什么JavaScript只在IE中打开开发人员工具一次后才有效?

SignalR:在IE9下,客户端无法接收消息,直到我点击F12 !!!!

SignalR客户端在AngularJs控制器中不起作用

一些代码片段

调度员方面

在下拉列表更改时,我们获取当前选定的值并通过网络发送更新.(这很好).

$('#Selector').on('change', function(){
   var variable = $('#SomeField').val();
   ...
   liveBatchHub.server.updateParameters(variable, ....);
});
Run Code Online (Sandbox Code Playgroud)

服务器端

当调度程序搜索时,我们会有一些服务器端代码发送已运行搜索的通知,并告诉客户端提取结果.

public void Update(string userId, Guid bId)
        {
            var context = GlobalHost.ConnectionManager.GetHubContext<LiveBatchViewHub>();
            context.Clients.User(userId).performUpdate(bId);
        }
Run Code Online (Sandbox Code Playgroud)

客户端(实时更新的查看者)

除非开发者工具是开放的,否则永远不会调用

liveBatchHub.client.performUpdate = function (id) {
                    //perform update here
                    update(id);
                };
Run Code Online (Sandbox Code Playgroud)

编辑

一些可能有用的信息(我不确定它为什么会产生影响)但这只会在我做服务器>客户端调用时发生.当调度程序更改搜索参数时,更新是客户端>服务器>客户端或调度程序客户端>服务器>查看器客户端,这似乎有效.单击搜索后,搜索管道中的服务将调用performUpdate服务器端(server> viewer-client).不确定这是否重要?

编辑2和最终解决方案

眼睛充血,我意识到我遗漏了这个问题的一个关键部分:我们在这个页面上也使用了角度.猜猜我已经盯着它看了太久而把它留了出去 - 抱歉.我给了JDupont答案,因为他在正确的轨道上:缓存.但不是jQuery的ajax缓存,角度$ http.

就这样,没有人不得不花费数天/晚的时间将头撞在桌子上,最终的解决方案是禁用使用angulars $ http的ajax调用缓存.

取自这里:

myModule.config(['$httpProvider', function($httpProvider) {
    //initialize get if not there …
Run Code Online (Sandbox Code Playgroud)

iis asp.net-mvc internet-explorer signalr

21
推荐指数
2
解决办法
7611
查看次数

禁用AJAX缓存

我现在有点腌渍.我正在构建一个从CGI后端获取数据的网页.我无法控制CGI后端,也无法控制服务器(因此没有mod_headers或mod_expires).此外,由于脚本的参数,我不能为每个请求附加唯一值(如'&089u0af0d98).请求是使用XmlHttpRequest对象的AJAX.我试图设置'If-Modified-Since'和'Cache-Control'请求标头失败.有没有人对我如何阻止AJAX响应被浏览器缓存有任何其他想法?

ajax

10
推荐指数
3
解决办法
5万
查看次数

Jquery Ajax调用崩溃的Internet Explorer?

我必须承认,这是我在这个网站上的第一篇文章,所以如果我做错了(格式化等),我会在建议中道歉.

无论如何,我正在使用javascript(和jQuery)创建一种mmo,到目前为止,Chrome,Safari,Firefox等都运行良好.但是,我发现在某个地方,Internet Explorer崩溃了.

通过重现崩溃,我把它缩小到这个代码:

function getUpdates(){
var data={uid:playerName,area:1,mid:lastMessage};
$.ajax({ 
    url: "getUpdates.py", 
    timeout: 32000,
    data: data,
    type:"GET",
    complete: function(obj, textStatus){
            //handleUpdates(obj);
        getUpdates();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

应该在很长一段时间内轮询更新.但是,在一次回复之后的IE中,这段代码陷入无限循环,这会使浏览器崩溃.只有在没有服务器响应时,每次回复后似乎都不会崩溃.

注意,表示"完成:......"的行已被尝试为:

success: function(...){getUpdates();...},
error: function(...){getUpdates();...}
Run Code Online (Sandbox Code Playgroud)

出现同样的问题.

crash jquery internet-explorer polling long-polling

4
推荐指数
1
解决办法
4425
查看次数

如何使用PHP或Javascript删除Microsoft Edge的缓存?

我目前已经开始了一个包括AJAX在内的项目,我遇到了一个问题.使用Microsoft Edge(和Internet Explorer)时,它不会更新数据,除非我关闭整个页面并再次打开它,或者我打开我的PHP文件,我通过AJAX发送数据.

有没有人没有如何使用PHP和/或Javascript解决这个问题?

提前致谢

javascript php ajax microsoft-edge

2
推荐指数
1
解决办法
3451
查看次数