Showing posts with label DOJO. Show all posts
Showing posts with label DOJO. Show all posts

Wednesday, March 26, 2014

Dojo and usage of has()

Quote from: http://livedocs.dojotoolkit.org/dojo/has Browser sniffing and feature inference are flawed techniques for detecting browser support in client side JavaScript. So lets face the truth, dojo's own code base and how many time has(something) is used
62 "ie"
14 "quirks"
14 "dojo-sync-loader"
12 "webkit"
11 "extend-dojo"
10 "opera"
 9 "touch"
 9 "host-browser"
 7 "safari"
 7 "mozilla"
 7 "dojo-combo-api"
 5 "mac"
 5 "dom-addeventlistener"
 5 "dojo-trace-api"
 5 "bug-for-in-skips-shadowed"
 4 "ios"
 4 "highcontrast"
 4 "dom"
 4 "dojo-requirejs-api"
 4 "config-deferredInstrumentation"
 4 "chrome"
 3 'activex'
 3 "khtml"
 3 "host-rhino"
 3 "host-node"
 3 "ff"
 3 "dojo-v1x-i18n-Api"
 3 "dojo-preload-i18n-Api"
 3 "dojo-loader-eval-hint-url"
 3 "dojo-loader"
 3 "dojo-inject-api"
 3 "dojo-config-api"
 3 "config-useDeferredInstrumentation"
 3 "config-dojo-loader-catches"
 3 "android"
 3 "air"
 2 name
 2 'native-xhr'
 2 'config-dojoBlankHtmlUrl'
 2 "trident"
 2 "ie-event-behavior"
 2 "dom-qsa2.1"
 2 "dojo-unit-tests"
 2 "dojo-undef-api"
 2 "dojo-publish-privates"
 2 "dojo-log-api"
 2 "dojo-debug-messages"
 2 "dojo-cdn"
 2 "dojo-amd-factory-scan"
 2 "array-extensible"
 1 term
 1 'script-readystatechange'
 1 'native-xhr2'
 1 'native-formdata'
 1 'mozilla'
 1 'host-node'
 1 'host-browser'
 1 'dom-qsa2.1'
 1 'dom-parser'
 1 'dojo-force-activex-xhr'
 1 'config-useXDomain'
 1 'config-requestProvider'
 1 "wii"
 1 "rtl-adjust-position-for-verticalScrollBar"
 1 "position-fixed-support"
 1 "native-xhr"
 1 "json-stringify"
 1 "json-parse"
 1 "jscript"
 1 "events-mousewheel"
 1 "events-keypress-typed"
 1 "event-stopimmediatepropagation"
 1 "event-orientationchange"
 1 "event-focusin"
 1 "dom-quirks"
 1 "dom-qsa3"
 1 "dom-qsa"
 1 "dom-parser"
 1 "dom-matches-selector"
 1 "dom-compliant-qsa"
 1 "dom-attributes-specified-flag"
 1 "dom-attributes-explicit"
 1 "dojo-timeout-api"
 1 "dojo-test-sniff"
 1 "dojo-sniff"
 1 "dojo-moduleUrl"
 1 "dojo-modulePaths"
 1 "dojo-has-api"
 1 "dojo-guarantee-console"
 1 "dojo-force-activex-xhr"
 1 "dojo-fast-sync-require"
 1 "dojo-enforceDefine"
 1 "dojo-dom-ready-api"
 1 "dojo-config-require"
 1 "dojo-config-addOnLoad"
 1 "dojo-built"
 1 "css-user-select"
 1 "config-tlmSiblingOfDojo"
 1 "config-stripStrict"
 1 "config-selectorEngine"
 1 "config-publishRequireResult"
 1 "config-_allow_leaks"

Wednesday, April 3, 2013

RQL - resource query language - playground

Friends of mine have created an experimental playground for RQL - Resource Query Language. You can enter the source JSON, query (in RQL) and also create own operators. It contain some predefined samples with associated predefined queries. Shall live here: http://rql-engine.eu01.aws.af.cm/ and here are some screenshots:

Sunday, January 13, 2013

dojo-declare - performance

http://jsperf.com/dojo-declare I would expect some slow down but not this big. Need to investigate. Any collaboration appreciated. Construction:

Wednesday, January 2, 2013

dojo/dom-class vs. native classList

1) html 5 supports classList
http://davidwalsh.name/classlist

2) dojo implementation is not using these native methods, and is slow compared to native variants:
http://jsperf.com/native-dojo-class-manipulation-v-html5/7

Here is (my) draft of improvement: 
http://jsperf.com/native-dojo-class-manipulation-v-html5/8
(last method "Has Class - Dojo - with feature detection" and naive has(), contains1() methods)

Native support detection issue is also mentioned in bug discussions (currently closed as 'rejected'):
http://bugs.dojotoolkit.org/ticket/11465

More, it is marked as "posterity" in latest source code (line 43):

https://github.com/dojo/dojo/blob/master/dom-class.js



3) Many HTML5 support detections are still missing in has.js: 

IMHO, about classList, only pull request from brianforbes, 2 years old (quite ugly):
https://github.com/bryanforbes/has.js/commit/c2711e28989c0b838ea5d121915de3dad6952b0b

 
For the beginning, we are comparing:
Has Class - Dojo
domClass.contains("single_class", "a_class");
Has Class - HTML5
document.getElementById("single_class").classList.contains("a_class");
classList contains with dojo byId
dom.byId("single_class").classList.contains("a_class");
Has Class - Dojo - with feature detection
domClass.contains1("single_class", "a_class");

http://jsperf.com/native-dojo-class-manipulation-v-html5/8

Wednesday, May 16, 2012

dojo/when standalone module (get ready for 1.8, start now)

Finally on the 1.4.2012 dojo team extracted Deferred.when() function into separate module dojo/when. So it is the end of including Deferred if only when() is needed, and end of Deferred.when() ugly client code. Thank you. P.S: old dojo/_base/Deferred uses new dojo/when.js

Wednesday, January 4, 2012

Tuesday, November 15, 2011

Relative Module Identifiers (dojo, AMD)


/*
Relative Module Identifiers:
http://livedocs.dojotoolkit.org/loader/amd#id8
http://livedocs.dojotoolkit.org/loader/amd#id9

A) Don’t use Relative Module Paths in require([]), only work in define([])
B) Don't use Relative Module Paths with global require use Context Sensitive _require


sample file:
path: dojo-boilerplate/js/myPackage/myModule/test3.js
no .js added at the end
*/
// !!! bad
// /dojo-boilerplate/mySubmodule9/b 404 (Not Found)
// /myModule8/a 404 (Not Found)
require(["../myModule8","./mySubmodule9"]);    
  

define(["require","../myModule","./mySubmodule1"],function(_require){
 // dojo-boilerplate/js/myPackage/myModule/mySubmodule3.js
 require(["myPackage/myModule/mySubmodule3"]);  
 //  !!! bad !!! dojo-boilerplate/mySubmodule4 
 require(["./mySubmodule4"]);     
 // dojo-boilerplate/js/myPackage/myModule/mySubmodule6.js
 _require(["myPackage/myModule/mySubmodule5"]);  
 // dojo-boilerplate/js/myPackage/myModule/mySubmodule5.js
 _require(["./mySubmodule6"]); 
 // dojo-boilerplate/js/myPackage/myModule7.js  
 _require(["../myModule7"]);   
}); 

Tuesday, November 1, 2011

http://demos.dojotoolkit.org/demos/faces/

http://demos.dojotoolkit.org/demos/faces/
Broken link to logo.png and header.pmg
Not working in MSIE 8
Crashing on GA code ? (Line: 35 Error: Object doesn't support this property or method)

http://demos.dojotoolkit.org/demos/fonts/charts.html
Crashing on GA code ? this.set is not a function http://www.google-analytics.com/ga.js Line 35

http://demos.dojotoolkit.org/demos/mojo/
broken link to:
http://dojotoolkit.org/about

Thursday, July 7, 2011

Hello DOJO !

Browsing this web site today, I have run into deep disapointment:


http://dojotoolkit.org/documentation/tutorials/1.6/hello_dojo/

Error: Could not load 'dijit.form.Select'; last tried '../dijit/form/Select.js'
Source File: http://dojotoolkit.org/js/dojo/1.6/dojo/dojo.js
Line: 14

Error: _onloadHook is not defined
Source File: http://www.facebook.com/plugins/like.php?href=http://dojotoolkit.org/documentation/tutorials/1.6/hello_dojo/index.php&layout=button_count&show_faces=false&width=250&action=like&font&colorscheme=light&height=21
Line: 4

Error: missing ; before statement
Source File: http://static.ak.fbcdn.net/rsrc.php/v1/yp/r/ISUz2NXkL5P.js
Line: 50, Column: 38
Source Code:
-b;if(c<0){f=Dialogif(a.name=='cancel'){this.cancel();}else if(Dialog.call_or_eval(this,this._handler,{button:a})!==false)this.hide();},_submitForm:function(d,e,b){var c=this.getFormData();if(b)c[b.name]=b.label;if(this._extra_data)copy_properties(c,this.

Error: _onloadHook is not defined
Source File: http://www.facebook.com/plugins/like.php?href=http://dojotoolkit.org/documentation/tutorials/1.6/hello_dojo/index.php&layout=button_count&show_faces=false&width=250&action=like&font&colorscheme=light&height=21
Line: 4

shame on you, leading framework developers !