root / trunk / web / dojo / dojox / jq / README
History | View | Annotate | Download (4.15 KB)
1 | 9 | andrej.cim | ------------------------------------------------------------------------------- |
---|---|---|---|
2 | DojoX jq |
||
3 | ------------------------------------------------------------------------------- |
||
4 | Version 0.0.1 |
||
5 | Release date: 8/9/2009 |
||
6 | ------------------------------------------------------------------------------- |
||
7 | Project state: |
||
8 | experimental |
||
9 | ------------------------------------------------------------------------------- |
||
10 | Credits |
||
11 | James Burke |
||
12 | ------------------------------------------------------------------------------- |
||
13 | Project description |
||
14 | |||
15 | DojoX jq is a compatibility layer that tries to match the jquery 1.3.2 API. |
||
16 | ------------------------------------------------------------------------------- |
||
17 | Dependencies: |
||
18 | |||
19 | - Dojo Core. |
||
20 | ------------------------------------------------------------------------------- |
||
21 | Documentation |
||
22 | |||
23 | IF YOU WISH TO WORK ON THIS MODULE, PLEASE DO NOT LOOK AT THE JQUERY SOURCE. |
||
24 | |||
25 | We want CLA-clean code to be put in the Dojo repos. Just refer to the jquery API |
||
26 | documentation and unit tests. As we get bug reports, we can build up our own test |
||
27 | suite, and then hopefully contribute those tests back to jquery if their tests |
||
28 | do not adequately cover an API call. |
||
29 | |||
30 | This module needs a lot of work, it is in the very initial, rough stages. Some |
||
31 | (all?) of the code is ugly. It is missing some APIs, notably queue/dequeue, |
||
32 | the FX methods and live/die. |
||
33 | |||
34 | There are also some incompatibilities with how acme and sizzle operate at the moment, |
||
35 | mentioned in the comments in jq.js |
||
36 | |||
37 | The tests for this module so far have been the jquery 1.3.2 tests. Since those |
||
38 | tests are not CLA-clean, you will need to download them from here: |
||
39 | |||
40 | http://www.tagneto.org/dojo/jquery132.zip |
||
41 | |||
42 | Place the zip file in the dojox/jq/tests directory and unzip it. Then you can |
||
43 | run the jquery132/test/index.html file inside there to start the tests. |
||
44 | |||
45 | The tests were changed in a couple ways. For the tests I modified, |
||
46 | you can look for //JRB changed: to find the original test construction. |
||
47 | Things that were changed: |
||
48 | |||
49 | 1) acme requires spaces between CSS3 selectors, where sizzle does |
||
50 | not ("div>span" fails in acme, but works in sizzle). There is a |
||
51 | dtk.org bug on it, and it is allowed by the CSS3 spec to not have |
||
52 | spaces so hopefully that incompatibility can go away after a while. |
||
53 | |||
54 | 2) sizzle supports some psuedos like :last, :first: :odd, :even that |
||
55 | work on the list of matched elements, not just individual elements or |
||
56 | their children. This is a more fundamental change to acme, but it is probably |
||
57 | doable. |
||
58 | |||
59 | 3) The XML tests and ajax tests that call out to files fail because of |
||
60 | some weird timing interaction between the jquery unit test thing and |
||
61 | our XHR code. I believe since our code has a timer where we check the |
||
62 | status of the XHR calls instead of using load callbacks directly on |
||
63 | the XHR callbacks, something is confused in jquery -- the failure case |
||
64 | is fired before our callbacks work. If only they used deferreds. ;) |
||
65 | To get those tests to sort of work, I modified qunit/testrunner.js's process() |
||
66 | method to be like so: |
||
67 | |||
68 | function process() { |
||
69 | if(config.queue.length && !config.blocking){ |
||
70 | setTimeout(function(){ |
||
71 | if(config.queue.length && !config.blocking){ |
||
72 | config.queue.shift()(); |
||
73 | process(); |
||
74 | } |
||
75 | }, 100); |
||
76 | } |
||
77 | } |
||
78 | |||
79 | Change 100 above to tune it depending on your patience and how much |
||
80 | you want to make sure the tests have enough time to run. With 100, you |
||
81 | can see some of the ajax tests passing. |
||
82 | |||
83 | From some previous notes (I have not checked more recently), it looks |
||
84 | like the compat layer fires "ajaxStop" more than jquery, I think due |
||
85 | to how we do our async in-flight testing, so that messes up some of |
||
86 | the testing in the ajax calls, but I think that is a detail that is |
||
87 | fine to go with. I just have to make sure that is really the cause of |
||
88 | a test failure and not something else. So I will probably need to |
||
89 | modify the tests more. |
||
90 | |||
91 | |||
92 | ------------------------------------------------------------------------------- |
||
93 | Installation instructions |
||
94 | |||
95 | Grab the following from the Dojo SVN Repository: |
||
96 | http://svn.dojotoolkit.org/src/dojox/trunk/jq.js |
||
97 | http://svn.dojotoolkit.org/src/dojox/trunk/jq/* |
||
98 | |||
99 | Install into the following directory structure: |
||
100 | /dojox/jq.js |
||
101 | |||
102 | ...which should be at the same level as your Dojo checkout. |
||
103 | ------------------------------------------------------------------------------- |