After realizing the first working version of TableData I found several things that did not work as expected so I published a better version with some enhancements.
The first version (still available here) retrieved the row from the WebService one row each time. The time that is needed to update a page full of visible rows was only a second or two when developing on my local system but is about 4-6 second on the real internet. The reason for this slow down is the time a package needs to be transferred from the client to the server and back. You can use the tracert command (tracert www.mathertel.de) line tool to verify this timing. You can see how long an almost empty package needs to be transferred and that is extremely longer than a package that doesn't leave a development machine. Reducing the number of packages is the key and I decided to bundle the Fetch call for all newly visible rows together into a singe call to the server.
After some months of working with both browsers (IE and FireFox) I've got some experience in implementing one source for both browsers - but forgot to test.
I fixed some minor things:
- The parentElement attribute of the html dom should not be used. Use parentNode instead.
- The firstChild attribute might get a text node in FireFox that is skipped or not existing in IE. Whitespace should not be used between a parent node and the fist child node.
- The onscroll event it is not documented but works as expected in FireFox. Great !
When trying to reuse the controls on a different project I found that I need more parameters to make them portable. The name (alias) of the service that is used for selecting and fetching the data is now configurable.