Newbie questions about Pliant

Newbie questions about Pliant

javascript messes up page on submit

When a form is submitted, pliant.js
code messes up the values in all the fields before submit.
Message posted by maybe Boris Reitman on 2007/09/01 00:49:09
function change(f) {
  if(f.name.substring(0,1)=='/') {
    f.name = 'data'+f.name
  }
}

The function changes field names. The effect of this is that first,
the fields are momentarily emptied before submit, which looks weird to the user.

Second, on firefox the goto_backward doesn't refresh the page after it goes back.
Thus, the page is in the wrong state (all fields names are renamed). 
If user fills at this point the form, the data will not be passed properly,
since it's on differently named fields.

Why is this done the way it is done, and how can this be fixed ?
Message posted by maybe Hubert Tonneau on 2007/09/01 10:14:12
Unchanged fields are emptyed before submitting to the server for two reasons:
. HTTP enables to compress the down stream, but not the up one, so in case of
  a large form (as an example editing a database table with thousands of rows
  and many columns) it might be large and slow
. HTTP is stateless, so any field provided back to the server will be written
  to the database

The second point is by far the most important.
Let's imagine:
. user 1 get's to an URL enabling to edit a database record
. then user 2 do the same and changes the value of one field
. then user 2 leaves the URL, so the change is applied to the database
. lastly user 1 leaves the URL without changing anything
If unchanged fields are not cleared, then at the time user 1 leaves the URL,
the initial value will be written to the database, thus discarding the change
user 2 applied.


HTML/HTTP/Javascript has extended over time to a very dirty protocol where
everybody uses tricks to get the job done. In such a senario being original
and unpopular is no good and this is what Pliant old HTTP is. Basically Pliant
old HTTP server uses tricks, but not the well known ones that you find in all
two cents site dedicated to HTML/HTTP/Javascript and that have been copied by
thousands of developpers. Now on web browser developpers side, when they test
a new release, they check that it works properly with most existing sites,
so in facts they check that very popular tricks still work; not more.

As a result, with the new Pliant HTTP proxy, I've switched to requiering and
relying on AJAX, and it's bad from the design point of view because it
requires one of the fiew monster browsers and prevents simpler or older ones
to work, but it's realistic because now I use more standard tricks (also it's
still not perfect in this area).
I could rewrite the old HTTP server to rely on AJAX tricks, but it would be a
lot of work, and I prefered spending time on writing the Pliant UI client that
is sane, requires no trick to work properly, and can go futher than any
existing monster up to date browser.
Message posted by maybe Hubert Tonneau on 2007/09/01 10:17:19
> Second, on firefox the goto_backward doesn't refresh the page after it goes back

That's not correct. You should write it: On Firefox 1.5 and later ...
It works properly on Firefox 1.
This is just an illustration of not very popular tricks that stop working
with new release of a browser.