-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Several browsers show infinite loading status #215
Comments
This is the case with Safari (on Windows) as well. |
The standard fix was to include a dummy iframe and set its src to an empty blank.htm file on the root of the site after say 100ms. This would force the loading bar to finish even if other iframes were busy. To avoid needing each site that uses signalr to include a blank.htm you could try creating a dummy iframe and setting its src property to about:blank in a setTimeout. This may force the progress bar to fill up. Let me test. |
I tried the suggested fix previously in Firefox and it fixed the loading indicator issue there (although we don't use Forever Frame in Firefox), so hopefully it will work here for IE8 and Safari too. |
This does work, just added the following to our app and it cures ie7/8
|
I tried the code that redsquare posted, It works initially, but after a few minutes I'm getting the indicator again. I know an older version of signalR was not causing this issue. Any other suggestions would be greatly appreciated. I have a few months to figure this out. |
I didnt leave it open that long on ie! It will be as the reconnect happens after 110 seconds. Maybe need to hook into the client reconnect event and do a similar thing to above? Will test it now to see if I can replicate. |
so I actually added the logic to the signalr.js file. I put the code in the connect and reconnect part of the forever frame code and that seems to solve this issue, but while using fiddler, I came across a more alarming issue that may be the real cause to my problem. Let me first say that I have this working in 3 basic demo apps. The problem resides in the web app where I'm trying to implement it. For some reason, after the client receives data the first time from the hub, signalr is trying to reach http://myhost/signalr It appears it's trying to re-establish the long poll but fails. I even tried to put my logic on a blank aspx page with the a basic echo function and its failing. Something is different about my existing project vs the demo ones I created. |
Issue not only exists on Safari in Windows but also on Lion. |
Mobile safari seems to have this behavior by default with SSE http://googlecodesamples.com/html5/sse/sse.html. I also see the same for longPolling on mobile safari. So I'm thinking that's by design. I can't repro the other behavior on IE8 or Safari on windows. Here's my test site: I used http://www.browserstack.com/user/dashboard to do testing on different platforms. |
I've been able to reproduce it, if sporadically. Add an image element to the sample stockticker. It should be noted I'm testing on IIS7 and thus using long polling. |
You can also reproduce it by going to http://jabbr.net/ , sign in & hit refresh. You'll get a loading indicator in Safari. |
I've been able to address the issue in Safari as explained on StackOverflow . I now start the connection (hub) in a timeout instead of doing it directly in the ready/load handler. |
Applied Feature label to this since we added waitForPageLoad option for the javascript client with pull request #578. |
I'm still getting this issue with SignalR v0.5.3.3.3. Current workaround is to create a fake iframe and remove it, some milliseconds after page load. |
Could you provide repro? Also, what version of Safari are you using? |
Yeah. It's a basic SignalR setup in MVC4 with a hub. No fancy stuff. And it's on IE8 running on a Windows XP virtual machine. IIS7.5 in Windows 7. Repro:
Waiting of course for the $.connection to be established with a callback in .done() See how the tab keeps loading, and statusbar displays "waiting for ...." with foreverFrame as transport. |
Not working ... safari 5.1.7 keeps on loading How to fix this issue....anyone? |
Safari for windows? I'm not able to repro via 5.1 on Mac |
Reopening due to known IE8 continuance and limited versions of Safari reproduction. |
… from the dom - This prevents the infinite loading icon in IE8 and below (does not happen for > ie8) #215
- Essentially just reference counts the connections that are attached to the loadPreventer - Also changed the way I create garbage frames. Moved the variable into the inner closure #215
… from the dom - This prevents the infinite loading icon in IE8 and below (does not happen for > ie8) #215
- Essentially just reference counts the connections that are attached to the loadPreventer - Also changed the way I create garbage frames. Moved the variable into the inner closure #215
… from the dom - This prevents the infinite loading icon in IE8 and below (does not happen for > ie8) #215
- Essentially just reference counts the connections that are attached to the loadPreventer - Also changed the way I create garbage frames. Moved the variable into the inner closure #215
On IE8, this fix blocks debugging on SignalR script when use foreverFrame, the breakpoint can't be set for JS debugger |
After discussion earlier today we wanted to increase the interval in which we add/remove iframes so that will further make debugging difficult |
now on IE8 the breakpoint can be set and debugging work for the page with the fix on my machine. (Last night, the page with the fix debugging didn't work, but at the same time other page debugging worked, don't know what happened at that time) |
verified for multiple connections on IE8 /IE7, about the fix causing IE8 Developer Tools / Script interval refresh, we just wait for customers feedback. |
This was fixed for ie8 in the next release, there is still a loading issue in ios and android. Reopening. |
I would propose closing this issue, and opening a separate one targeting more specific browsers. Now that IE8/7 is fixed that would be useful to know by looking at this thread. what about a new issue specifying iOS and Android, with a reference to this issue? |
Wow - before finding this thread I was wrestling with a sudden break in behavior in Safari on iOS, stuff that had worked before stopped, and I hadn't made the connection to the iOS6 upgrade until now. It makes sense! Dynamically loaded images would no longer appear, but it wasn't clear that this was related to SignalR. My fix was to plug in a behind-the-scenes image preloader for all anticipated images that I knew my page could dynamically load, and that resolved the issue for me. |
@davidfowl , @yngvebn |
What is the latest for this issue? I'm using v1.0.1 too but facing the same issue on iOS Safari, can someone guide me to the solution? Thanks! |
@jflee - there is no 'solution', because the problem is that iOS Safari has a broken server-sent events implementation. Some work-arounds are: Use Chrome instead of Safari, preload images so that you're not trying to load them while SignalR is active, and apparently there are some possibilities of loading images from other domains, which I haven't tried and might be difficult to implement anyway. |
@JMacPSU code not working in IE 11. i checked in IE9 and IE10 working fine. |
It is March 1st, 2015. So I take it iOS and Safari clients are still not compatible with SignalR? |
When I tried SignalR app with IE8, seems it always trying to show loading status in the status bar in IE8. The temp site is http://319c8b3d7b394b46b1b7b7eb67d32778.cloudapp.net/. Contact me privately for code. Thanks.
Similar issues:
The text was updated successfully, but these errors were encountered: