Is it OK to use threading.sleep in an intranet web application to display AJAX loading (in production environment)? Off course, the application works fine without it but all works too quick for the end user or even a developer to notice any difference.
What is the recommended approach ?
Just read this thread: I am amazed: you want an application to fetch data slower? That sounds really strange to me.
You should try to make it clear to the user that the new data is loaded. You can use an animation or something like a highlight color for new items. Maybe a 'new' icon?
Imagine that the servers are running slow deu to some errors. Than the user still has to wait an extra second to see the data. Just something to think about.
Related
Hello I am developing a website on ASP.NET and while developing it I am also testing its behavior and changes. The problem I am facing is some times when I make change on .CSS file those changes does not appear on the browser even when I refresh it or rerun the project but when I run that project on different browser it began to show those changes. If it is a code related or browser related or IDE related please let me know. Thanks
Try hitting ctrl-F5 - that will force a re-load.
Unless you change the name of the css file or other resource, the browser can cache that information for months on end.
In fact, some utilities will even add say a dummy parameter to the linked css file - thus on each build the parameter is updated - and thus the browser will not use the older cached value (but, I not found a great working and easy to use utility that does this).
The other way? Empty your browser cache. So yes, the cache can be a REALLY nasty issue during development. And in fact it can be REALLY nasty when you update your site - users will not see say a modify css file, since it been cached, and with the same name, then users will not see new fixes/style changes or even even things like text alignment that you fixed in the css file.
As noted, in most cases, if you launch a page, then try hitting Ctrl-F5 (I think this works in most browsers). If that fails, then you have to in the browser re-set the cache (empty the cache), and then you see the new changes.
I wish had a better solution, and I wish one could just say:
Ok, please re-set ONE time for all past users - since they will often not see your changes - and you don't have much control with any real great ease to re-set the cached information. There are truck-loads, book sized articles in dealing with this issue, but sadly, there not really a great solution right now. If you want say things like cached css stuff to go away client side? Then you have to change the name of the css file - and that can be painful.
At least during development? Well, let the page load, then try Ctrl-f5 - that works well in most cases.
In my Flex app I give the user the ability to open up a new item form ( s:Panel ) and create multiple items on the page.
Sometimes for some odd reason bringing up the panel (simple task) seems to take a really long time to load (like 30 seconds or so) However, the weird thing is that if right after I click to open I navigate away from the Tab and back again to the Flex app tab it shows up right away.
I'm not sure if this has to do with refresh rate or some setting or is it general performance/memory issue with my app that I have to consider. When the application work it works fairly fast which is making me think it's not memory/performance issue.
It's hard to be sure without more details, but are you following the component life cycle? Just to be sure we're talking about the same thing, here's a nice presentation about it: http://www.slideshare.net/rjowen/adobe-flex-component-lifecycle-presentation
customers does not want to allow user to use back or forward button. Just a clean page without commandbar and toolbar, same for FF an IE.
Disabling them is not an option as now.
You cannot change that kind of thing in a existing window -- the only way you can make those disappear is by opening a popup, specifying they should not appear in that popup when it's being opened.
Still, note that you should not try to disable those buttons nor have them disappear : your application should work fine with them, handle their actions -- after all, it's one of the few things users have understood in browsers...
And as a user, this is disturbing and annoying :
I don't like popup windows -- and I'm not the only one who doesn't
I don't like when a website tryies to take control over my browser
It will not always work anyway.
And, as a sidenote : even if the back/forward buttons are not displayed, users can still use Ctrl+left/right or some kind of equivalent !
I know this is not easy, but a part of your work as a web-developper is to explain your clients how Internet and web-applications work... not the same way as desktop applications !
If you can force your users into IE (can't believe I'm suggesting use of IE!) you can do this trick. Try running this from the command line
"C:\Program Files\Internet Explorer\iexplore.exe" -k
This will force IE into kiosk (or full screen mode), similar to pressing F11 when in a usual browser session.
PS. I agree with the other answers suggesting this should be discouraged but there are instances (such as when the end user really can't be trusted) that this is a good solution.
No, there's no other way.
However, this is extremely annoying behavior and should be greatly discouraged. This isn't a code issue to solve...this is behavior that shouldn't be implemented at all.
My opinion here, you have a client problem not a code problem. Whatever standard is the expectation, and the user has the expectation of having their back/forward buttons, break that and you break their experience.
Ever see a Windows application that removes the taskbar? That's the equivalent...
I don't think there is a reasonable way to disable the behavior. You may get rid of the buttons in various ways, but the behavior is still there (through keyboard commands, popup menus and so on).
The only reasonable way is to make your web application follow web semantics, and make the client realize this.
many web based ERP (for example) does not tolerate people using navigation buttons. BUT these web applications handle the fact people use these buttons and do not crash. That's what you should do. If each time people use the back button, they get an error message, they will quickly stop using it.
The solution that used to work in IE was adding a startup script with one line:
location.forward();
This is basically a continuation of a question of mine from yesterday,
"Foregoing intialization on a page"
(And btw, kudos to all who give selflessly in this forum to help others - need to do more of that myself.)
So anyway, I was told about HistoryManager, BrowserManager and SharedObject, and so quickly ascertained that its no problem to store a few data items in a shared object so a flex page restores the previous configuration when the browser navigates back to it.
But my real concern would be speed of loading. Its a 15mb page and it only takes 2 seconds to load, but that's still not instantaneous. If it were in a tabbed browser and I just clicked on another tab containing my page, my page would then appear instantaneously. Is there any way to achieve that behavior when my page is navigated back to (via the browser back button for example.) Would that mean that the entire 15mb flex web page would have to be stored in memory.
Thanks.
Here's what I'm thinking, you're going the wrong way about this,(unless I missed the boad on what you want to acheive) what you need to do is work with javascript to interact with the browsers url. Thjis is assuming that you want to be able to go back on a page without reloading content.
Basicaly a java script would override the reloading, and when you hit back, the page doesn't reload, but the javascript notifies the flash what change in has occurred.
Have a look at the gaya framework for how they do it
or lookat http://www.robertpenner.com/experiments/backbutton/backbutton.html
A user complains they can't paste into one particular text box on a form and that this is a change in behavior that occurred three months ago. I can't reproduce the error. I've tried long text, short text, plain text, formatted text, everything works. I did fix some poorly formatted HTML, but it didn't change their problem.
The user and I are both using XP/IE7. The application uses a proprietary MVC framework with C# on .NET 1.1. The UI only works reliably in IE. (I tried Opera and the paste works, I can't get logged in with Firefox to get to the screen.)
Any ideas where to start?
Thanks!
Edit - here's dialog I had with the user that didn't bring to light any issues.
You were actually on the right track
in asking about the firewall, because
you are trying to identify something
that is different between me and you.
Here's some other potential
differences.
Maybe we aren't doing it the same way:
Do you use keyboard shortcuts (Ctrl-C,
Ctrl V) or the context menu (right
mouse click and select copy/paste)?
Maybe our computers are different:
What hardware (Windows/Mac), operating
system (XP, Vista, etc.), and browser
(IE, Firefox, etc.) are you using?
Maybe our understanding of the problem
is different: Do you not see the text
when you paste it in, or is it not
being saved?
Maybe what we are copying from is
different: I copied something from
Bugzilla and something from notepad.
Both are plain text. I need to try
formatted text, like from a PDF and
from Word. You need to try plain text.
This may be actually a user training issue. If it were me, I'd use something like crossloop to watch the user interact with the page. If you can see what they are actually doing (not what they SAY they are doing) then you have half a chance at reproduction of the issue. Based on your description, it is very likely not an issue with the software, but a PEBKAC situation with your user.
Notes on Crossloop
We use crossloop with our clients and our developers in training. Basically you install the software (very easy) on both your computer and the end user's computer. The end user then authorizes you to "see" his machine by sending you a connection code. Once connected, both you and the user can move the mouse/type/see the other person use the mouse.
It would be like a remote desktop or vnc session, but much easier to get up and running across firewalls and without too much setup/config headache.
It is also a free download, and a free service (the last time i used it anyway).
Suggested course of action
Install Crossloop on your machine and familiarize yourself with it. (maybe do a trial run connect with a co-worker)
Call user and ask if they would be willing to show their issue to you directly via some screen sharing software.
Walk them through the install and connect of Crossloop.
Instruct them to show you the issue.
Watch for glaring errors, etc.
Hopefully see either what the user is doing wrong, or what conditions the bug manifests itself.