खोज…


टिप्पणियों

DojoConfig ऑब्जेक्ट (पूर्व में djConfig ) आपको dojo टूलकिट के विभिन्न पहलुओं के लिए विकल्प और डिफ़ॉल्ट व्यवहार सेट करने की अनुमति देता है। उदाहरण बताएंगे कि क्या संभव है और आप अपने कोड में उपयोग के लिए dojoConfig कैसे डाल सकते हैं।

नोट करें कि dojoConfig को स्क्रिप्ट ब्लॉक में dojo.js लोड होने से पहले परिभाषित किया गया है। यह सर्वोपरि महत्व का है - यदि उलट हो जाता है, तो कॉन्फ़िगरेशन गुणों को अनदेखा किया जाएगा।

लोड DojoConfig

नीचे दिए गए नमूने में हम एक वैश्विक जावास्क्रिप्ट ऑब्जेक्ट dojoConfig बना रहे हैं जिसमें सभी कॉन्फ़िगरेशन मान होंगे।

नोट: dojo.js लोड होने से पहले dojoConfig को स्क्रिप्ट ब्लॉक में परिभाषित किया गया है। यह सर्वोपरि महत्व का है - यदि उलट हो जाता है, तो कॉन्फ़िगरेशन गुणों को अनदेखा किया जाएगा।

<script>
    dojoConfig= {
        has: {
            "dojo-firebug": true
        },
        parseOnLoad: false,
        foo: "bar",
        async: true
    };
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>

<script>
// Require the registry, parser, Dialog, and wait for domReady
require(["dijit/registry", "dojo/parser", "dojo/json", "dojo/_base/config", "dijit/Dialog", "dojo/domReady!"]
, function(registry, parser, JSON, config) {
    // Explicitly parse the page
    parser.parse();
    // Find the dialog
    var dialog = registry.byId("dialog");
    // Set the content equal to what dojo.config is
    dialog.set("content", "<pre>" + JSON.stringify(config, null, "\t") + "```");
    // Show the dialog
    dialog.show();
});
</script>

<!-- and later in the page -->
<div id="dialog" data-dojo-type="dijit/Dialog" data-dojo-props="title: 'dojoConfig / dojo/_base/config'"></div>

लोडर विन्यास

Dojo को टूलकिट के नए AMD मॉड्यूल प्रारूप के लिए समायोजित करने के लिए Dojo 1.7 में एक नया लोडर प्राप्त हुआ। इस नए लोडर में कुछ नए कॉन्फ़िगरेशन विकल्प जोड़े गए हैं जो संकुल, मानचित्र और बहुत कुछ परिभाषित करने के लिए महत्वपूर्ण हैं। लोडर पर विवरण के लिए, उन्नत AMD उपयोग ट्यूटोरियल देखें। महत्वपूर्ण लोडर कॉन्फ़िगरेशन मापदंडों में शामिल हैं:

BaseUrl: बेस URL किसी पथ या URL में कनवर्ट करते समय एक मॉड्यूल आइडेंटिफ़ायर से जुड़ा हुआ है।

baseUrl: "/js"

पैकेज: वस्तुओं की एक सरणी जो पैकेज का नाम और स्थान प्रदान करती है:

packages: [{
    name: "myapp",
    location: "/js/myapp"
}]

नक्शा: आपको अलग-अलग रास्तों के लिए मॉड्यूल पहचानकर्ता में पथों को मैप करने की अनुमति देता है:

map: {
    dijit16: {
        dojo: "dojo16"
    }
}

पथ: फ़ाइल पथ के लिए मॉड्यूल आईडी के टुकड़े का एक नक्शा:

var dojoConfig = {
    packages: [
        "package1",
        "package2"
    ],
    paths: {
        package1: "../lib/package1",
        package2: "/js/package2"
    }
};

    // ...is equivalent to:
var dojoConfig = {
    packages: [
        { name: "package1", location: "../lib/package1" },
        { name: "package2", location: "/js/package2" }
    ]
};

async: परिभाषित करता है कि क्या Dojo कोर को अतुल्यकालिक रूप से लोड किया जाना चाहिए। मान सही, गलत या लीगेसीएस्पाँक हो सकते हैं, जो लोडर को स्थायी रूप से लीगेसी क्रॉस-डोमेन मोड में रखता है।

async: true

parseOnLoad: यदि सही है, पृष्ठ को dojo / parser के साथ पार्स करता है जब DOM और सभी प्रारंभिक निर्भरता (dojoConfig.deps सरणी में शामिल हैं) लोड किए गए हैं।

parseOnLoad: true

It is recommended that parseOnLoad be left at false (it defaults to false, so you can simply omit this property), and that developers explicitly require dojo/parser and call parser.parse().

डिपो: संसाधन पथों की एक सरणी जिसे Dojo के लोड होते ही तुरंत लोड करना चाहिए:

deps: ["dojo/parser"]

कॉलबैक: एक बार deps को पुनर्प्राप्त करने के लिए कॉलबैक पुनर्प्राप्त किया गया है:

callback: function(parser) {
    // Use the resources provided here
}

WaitSeconds: एक मॉड्यूल के लिए लोड टाइमआउट सिग्नलिंग से पहले प्रतीक्षा करने के लिए समय की मात्रा; डिफॉल्ट्स टू (हमेशा के लिए रुकें):

waitSeconds: 5

cacheBust: यदि सही है, तो मॉड्यूल कैशिंग से बचने के लिए प्रत्येक मॉड्यूल URL के लिए एक querystring के रूप में समय जोड़ता है:

cacheBust: true

अब एक सरल डेमो बनाते हैं जो मूल मापदंडों का उपयोग करता है। एक बहुत ही सामान्य परिदृश्य स्थानीय मॉड्यूल के साथ CDN से Dojo टूलकिट का उपयोग कर रहा है।

मान लें कि हम Google सीडीएन का उपयोग मॉड्यूल के साथ /documentation/tutorials/1.10/dojo_config/demo स्पेस में करते हैं:

<!-- Configure Dojo first -->
<script>
    dojoConfig = {
        has: {
            "dojo-firebug": true,
            "dojo-debug-messages": true
        },
        // Don't attempt to parse the page for widgets
        parseOnLoad: false,
        packages: [
            // Any references to a "demo" resource should load modules locally, *not* from CDN
            {
                name: "demo",
                location: "/documentation/tutorials/1.10/dojo_config/demo"
            }
        ],
        // Timeout after 10 seconds
        waitSeconds: 10,
        map: {
            // Instead of having to type "dojo/domReady!", we just want "ready!" instead
            "*": {
                ready: "dojo/domReady"
            }
        },
        // Get "fresh" resources
        cacheBust: true
    };
</script>

<!-- Load Dojo, Dijit, and DojoX resources from Google CDN -->
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>

<!-- Load a "demo" module -->

<script>
    require(["demo/AuthoredDialog", "dojo/parser", "ready!"], function(AuthoredDialog, parser) {
        // Parse the page
        parser.parse();

        // Do something with demo/AuthoredDialog...
    });
</script>

संकुल विन्यास का उपयोग करके, हम सभी संदर्भ में किए गए demo/* बिंदु हमारे स्थानीय करने के लिए /documentation/tutorials/1.10/dojo_config/demo/ निर्देशिका जबकि कोई भी संदर्भ के लिए अनुमति देता है, dojo , dijit , और dojox गूगल CDN से आने के लिए। यदि डेमो पैकेज को परिभाषित नहीं किया गया था, तो demo/AuthoredDialog //ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/demo/AuthoredDialog.js लिए //ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/demo/AuthoredDialog.js पर चला गया। dojo/domReady के साथ तैयार होकर, हमने उपनाम का भी उपयोग किया।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow