ctest21 wrote:We are looking at a number of products to test our AJAX application and
the big determining factor seems to be whether the product can do a good job of synchronization.
We've tried some products that seem to sync with a JavaScript passage but there are problems with performance. And, we are not even sure if the sync is real or just a complicated way to program in a wait interval.
What does eValid use to synchronize page arrivals, and what methods do you have to synchroniza AJAX applications? Can you sync up based on a special element ID or property that we supply you?
The CTest21 Team is dying for an answer quickly!
The best way to answer this is to go over a couple of architectural facts about the eValid engine. The main thing is that eValid is *NOT* a plugin or a wrapper or an addon...it is a complete browser. Built in C++ and based on
use of the underlying IE DLLs, eValid emulates IE perfectly but has the test functions built in in direct C++ code.
Regular page sync, like when you navigate to some new page, involves a number of internal checks including those that you may already know about -- probably mainly "document complete" -- but also eValid uses checks on completion of all of the threads that the browser uses to retrieve dependent pages (e.g. images and JavaScript files, etc.). 99.99% of the time a page navigation signaled "complete" with these signals really IS complete.
IN some cases, you may need to add in syncs to make sure that a speeded up playback won't "de-sync". The most common of these is to sync on a piece of text in the page.
When you move into AJAX pages the "asynchronous" part of AJAX can really
create problems...the normal signals say the page is done, but pieces are still arriving (it is asynchronous, remember!). For sync in this case, eValid provides a kind of DOM value polling that is based on check loops inside
the product that hold back playback until a DOM-oriented fact is true.
The "validate and synchronize on selected object property" command is and
example of this -- but there are several variations depending on how sophisticated you want to make it.
All such sync commands probably take some care and adjustment to get right, but experience has shown that for one application once you have the sync pattern found, it generally applies to every page in the app.
On the JavaScript conflict issue, yes, we've heard the same thing. We did try out one such passage that was claimed to do the syncs, but when it was running the AJAX parts "froze"....which is not to say that a pure JavaScript solution to AJAX sync is impossible, but we've not seen it.
Hope this answers your questions!
## eValid