We need a JavaScript professional to write a DOM-Tracking JavaScript library.
This project only Covers Phase 1 (described in section "B. Phase 1")
A. General Description
What do we mean by a DOM-Tracking library?
By injecting the library in any application page it tracks changes on the DOM on a regular schedule (phase 1, later phase see below).
Basically on a regular schedule the whole DOM-Tree is sent to a given URL.
Let's assume something like:
<script src="[login to view URL]" type="text/javascript" />
<script type="text/javascript">
new [login to view URL]({
delay: 500,
url: '[login to view URL]'
});
</script>
Would send the current DOM Tree to the given URL every 500ms.
The project will be split in several phases and have some general requirements (see below):
B. Phase 1
- The tracker just sends the whole DOM in regular intervals to the given URL
- No compression, differential tracking
C. Phase 2
- Improve the network latency by just sending a textual diff to the last DOM and/or compress the content
- Add functionality to add events to the tracking. I.e. the tracker must not only be activated on a regular schedule but must be able to hook to defined events (for example if certain links/buttons are pressed or other events occur).
D. General requirements
- It must be just one minified javascript.
- If external helper libraries are used, then these have to be used in a non-conflicting way with any page javascripts that already may be there
- Must also work in older browsers (but does not need to support IE6 - this could be phase 3)
- Should have as little performance impact on the page as possible. I.e. efficient, smart and fast implementation
- The code needs to be well structured, use advanced javascript features, well readable and documented
E. General conditions
This project may be just the start to a long time hiring agreement. We have lot's of requirements for a skilled JavaScript developer. Ideally also bringing CSS/HTML expert knowhow with him and knowing about modern frameworks (like angular.js, jQuery UI, etc.). This could be anything between part-time to full-time in the future.
Please only apply for this if you really consider yourself being a JavaScript crack. Not just a person that has some JavaScript experience (everybody has).