title: Questions about dojo/dijit/dojox
body: <p>I'm learning <code>dojo</code> to develop a simple application to be used from mobile clients. I see some widgets have different features between <code>dojox/mobile/*</code> and <code>dijit/form/*</code>. For example the <code>ComboBox</code> from <code>dijit</code> has a property to select which field of a <code>Memory</code> store use (<code>searchAttrb</code>) while the one from <code>dojox</code> hasn't:</p>
  
  <p><a href="https://dojotoolkit.org/reference-guide/1.10/dojox/mobile/ComboBox.html" rel="nofollow">https://dojotoolkit.org/reference-guide/1.10/dojox/mobile/ComboBox.html</a></p>
  
  <p><a href="https://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html" rel="nofollow">https://dojotoolkit.org/reference-guide/1.10/dijit/form/ComboBox.html</a></p>
  
  <ol>
  <li><p>first question: would you recommend the use of <code>dijit</code> widgets for an application that will be used from smartphones?</p></li>
  <li><p>I know what <code>dojo/domReady!</code> means. But I'm not sure if I have to use it also in nested requires. Example:</p>
  
  <pre><code>require(["dojo/request/xhr", "dojo/json", "dojo/domReady!"], function (xhr, JSON) {
      xhr("api/dummy", {
          handleAs: "json"
      }).then(function (data) {
          require(["dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"], function (Memory, ComboBox) {
              var mystore = new Memory({
                  data: data
              });
  
              var comboBox = new ComboBox({
                  id: "idCombo",
                  name: "blabla",
                  store: mystore,
                  searchAttr: "field"
              }, "idCombo").startup();
          });    
      }, function (err) {
          console.log(err);
      });
  });
  </code></pre></li>
  </ol>
  
  <p>This snippet retreives a file on the server and create the <code>Memory</code> store. Then uses the field "field" to populate the <code>ComboBox</code>. Does the inner <code>dojo/domReady!</code> is required? I guess no, because that code is reached only after the outer function has been executed. </p>
  
  <ol start="3">
  <li>I see a lot of <code>dojo</code> examples written in different manner. Some declare all the require items just after the <code>dojo</code> include. Others require only the items the functions need, function by function. What are the differences?</li>
  </ol>
  
  <p>Examples</p>
  
  <p><a href="http://download.dojotoolkit.org/release-1.10.4/dojo-release-1.10.4/dojox/mobile/tests/test_FormControls.html?theme=Custom" rel="nofollow">http://download.dojotoolkit.org/release-1.10.4/dojo-release-1.10.4/dojox/mobile/tests/test_FormControls.html?theme=Custom</a></p>
  
  <p>declares all the items together, and without a function associated, so no names for the items:</p>
  
  <pre><code>&lt;script type="text/javascript" src="../../../dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true"&gt;&lt;/script&gt;
  
  &lt;script type="text/javascript"&gt;
      require([
          "dojox/mobile",
          "dojox/mobile/parser",
          "dojox/mobile/compat",
          "dojox/mobile/Button",
          "dojox/mobile/CheckBox",
          "dojox/mobile/ComboBox",
          "dojox/mobile/RadioButton",
          "dojox/mobile/Slider",
          "dojox/mobile/TextBox",
          "dojox/mobile/SearchBox",
          "dojox/mobile/ExpandingTextArea",
          "dojox/mobile/ToggleButton"
      ]);
  </code></pre>
  
  <p>while here:</p>
  
  <p><a href="https://dojotoolkit.org/documentation/tutorials/1.10/checkboxes/demo/CheckBox.html" rel="nofollow">https://dojotoolkit.org/documentation/tutorials/1.10/checkboxes/demo/CheckBox.html</a></p>
  
  <p>the require instruction is followed by a function:</p>
  
  <pre><code>&lt;script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="isDebug: 1, async: 1, parseOnLoad: 1"&gt;&lt;/script&gt;
  &lt;script&gt;                
      require(["dijit/form/CheckBox", "dojo/parser", "dojo/domReady!"], function(CheckBox, parser) {
  </code></pre>
  
  <p>Of course they should have different meaning and use cases, but I'm not sure to understand which.</p>