No announcement yet.

Key Usability Issue - User Feedback While Processing.

  • Filter
  • Time
  • Show
Clear All
new posts

  • Key Usability Issue - User Feedback While Processing.

    The script case forums are riddled with frustration and questions on the topic of providing user feedback after clicking a button when lengthy processing follows. A very valid concern. As it stands at version 9.3, and after years of frustration, there still appears to be no easy way to do this. The user clicks a button, and then nothing happens... there is no feedback... does the user click the button again, or what? Various methods have been suggested - some complex - at least for those of us that are not experienced web programmers. This really needs addressing.

    My latest attempts have now ended in frustration. I tried using a the Progress Bar example (see link). For this I have a simple control app. I have instantiated the progress bar at the start of the Validate Success event setup some text (per example), show the progress bar and start the processing. After processing, at the end of the event I display an alert (using the echo javascript method) and the form redirects back to itself. Visually, what happens after I click OK is the event fires, nothing displays, then I see the alert, and then finally I briefly see the progress bar text before the form re-displays. The progress bar is not appearing at the start, and therefore is pointless. But it is clear the progress bar is working, but it is not rendering until processing is finished. I don't pretend to understand how this works in detail, but there is something wrong with the sequence of events being communicated to the client.

    I have also tried something much simpler... which has worked in the past. I set up a text field on the form and then create a javascript method with one text parameter - the method simply sets the value of the text field to that passed in the text parameter. In the Validate Success event I call the javascript (sc_ajax_javascript) to set the field value. Again, the user clicks OK and nothing happens - the text field value is not changed. When the form is redisplayed, the text field value is set. But like the first example, this is useless... the user needs some visual feedback before the lengthy processing begins.

    I accept I may be doing something wrong (although the latter method has worked for me in the past with form applications). If anyone has a clue why none of this works, I'd love to know.

    In the meantime, may be NetMake can give some consideration to improving this aspect of usability of generated apps. As I said at the start, customers have been screaming out for this for years! Are you listening?

  • #2
    OK, just when I thought I had tried everything and posted the above, I realised I have not tried using an AJAX button.

    So I implemented the code that was originally in Validate Success behind an AJAX button, tried using both the "echo alert" method - same issues. Tried the progress bar - same issues.

    But the good new is that when the use clicks the button they do get some feedback in the form of spinner with the words "Processing...". I am happy with this for a start.

    For those users that want to display something meaningful, you may still have a challenge. But if you want to display some basic feedback to the user that they have clicked a button and "something" is happening then use an button with AJAX code.


    • #3
      Are you ready to share the source code with Scriptcase community on the forum?
      This is very useful.


      • #4
        rik Hi. The current code is immaterial - it doesn't actually do anything to change the user experience (what the user sees). When you define a button of type 'AJAX' (as opposed to PHP, JS etc..), the SC functionality seems to provide the spinner out of the box. Presumably the spinner is there to provide user feedback that there is an interaction in progress between the client (browser) and the server. In my experience, if you choose a type of anything else other than AJAX, you will not get the spinner. Just try implementing an AJAX button in a 'test' form - you will not need much in the way of PHP code behind it - just do a loop or something - when you click on the button the spinner should appear and disappear when the server responds. That's it. If you have a lengthy PHP process, if it makes sense, I suggest you just try putting that behind an AJAX button and see what happens - you should see the spinner while the process runs. Let me know if you experience something similar. Good luck.