Discussions

Web tier: servlets, JSP, Web frameworks: Dynamic screen update options?

  1. Dynamic screen update options? (2 messages)

    We have a complex web-based user interface that is rendered using XSLT from a J2EE application. Each screen consists of lots of HTML fields, some of which are grouped together into what we call "multi-row blocks". A new block can be added by pressing a "+" button.

    What our customers would like is that new blocks are added without the screen refreshing or changing. We used to have a JavaScript/Dynamic HTML solution that would do the complex HTML manipulation needed (insert new sections of HTML and re-name any fields in following blocks) but this was:

    - very specific to IE 6's internals (it's manipulating how IE internally represents HTML, which can be different to the output of the original XSLT transformation);

    - a couple of thousand lines of very brittle code, generally driven by regular expressions that kept breaking;

    - was unacceptably slow for large screens (more than a 20-ish blocks)

    To get around this we re-worked it to do a full server round-trip, using HTML Anchor tags to return the user to the start of the new block.

    However, Internet Explorer has a very annoying bug that it refreshes the screen, shows the top of the form, then after a couple of seconds it then "bounces" down to the anchor position.

    Does anyone know how we can get around this anchor problem? Or a better way to fix the solution, avoiding the screen refresh?

    Our customers have recommended using AJAX, but that doesn't get around the problem of making a large amount of updates to the current HTML form, so would do little to help us?

    Thanks,

      Chris Nappin.
  2. Why do not update your screen by blocks via ajax?
    Like this for example: http://www.servletsuite.com/servlets/ajaxdivtag.htm
  3. I'm prototyping an AJAX based solution to this at the moment.

    I have the remote call working fine, it returns the new HTML that I want to update part of the screen with. However when I actually update the screen (I'm setting the "innerHTML" property of a div in JavaScript).

    However this causes Internet Explorer to jump to the top of the screen.

    Is there any way around this?