Tag Archives: जावास्क्रिप्ट

त्वरित और आसान: एक SharePoint साइट के आराम का उपयोग कर बनाएँ

कैसे यह करने के लिए उस शो के आसपास संसाधनों का एक बहुत कुछ कर रहे हैं, लेकिन मैं नहीं मिल सकता है एक व्यापक जाने के लिए लिंक, तो यहाँ हम कर रहे हैं.

आप किसी SharePoint साइट में बाकी एपीआई का उपयोग कर बना सकते हैं।  यहाँ है एक पूरी तरह से पके हुए उदाहरण:

<!--
    SiteRequestForm.html: जानकारी एकत्र और उपयोगकर्ता के लिए एक साइट बनाएँ.
-->

<केंद्र>
<तालिका>
    <टी. आर.>
        <td>साइट का नाम:</td>
        <td><इनपुट प्रकार"पाठ =" नाम"SiteName =" आईडी"SiteName =" /></td>
    </टी. आर.>
    <टी. आर.>
        <td colspan= "2">
            <इनपुट प्रकार= "जमा करें" आईडी"CreateSiteButton =" मान= "साइट बनाएँ" />
        </td>
    </टी. आर.>
</तालिका>
</केंद्र>

<स्क्रिप्ट एसआरसी="../Plugins/jquery-1.11.0.min.js"></स्क्रिप्ट>

<स्क्रिप्ट>
var CreateSiteLogicContainer = {

    createSiteData: {
            "पैरामीटर": {
                __metadata: { "प्रकार": 'सपाWebInfoCreationInformation" },
                यूआरएल: "Paultest1",
                शीर्षक: "Paultest1",
                विवरण: "बाकी-बनाया वेब द्वारा पॉल!",
                भाषा: 1033,
                WebTemplate: "अनुसूचित जनजातियों",
                UseUniquePermissions: झूठी
            }
    },

    createSite: समारोह () {

        jQuery.support.cors = सच है;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").वैल();
        
        $.ajax({
            यूआरएल: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            विधि: 'पोस्ट",

            शीर्ष लेख: {
                "स्वीकार करते हैं": आवेदन/json"; odata वाचाल =",
                "सामग्री-प्रकार": आवेदन/json";odata वाचाल =",
                "एक्स-RequestDigest": $("#__REQUESTDIGEST").वैल()
            },

            डेटा: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            सफलता: समारोह () { चेतावनी("सफलता"); },
            त्रुटि: समारोह () { चेतावनी("त्रुटि"); }

        });
    },

    wireUpForm: समारोह () {
        $("#CreateSiteButton").क्लिक करें(समारोह () {
            चेतावनी("के बारे में प्रयास करें और साइट बनाने के लिए।");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</स्क्रिप्ट>

जब सफल, आप इस तरह की प्रतिक्रिया में एक JSON पैकेट प्राप्त:

image

मेरे मुख्य विचारों और इस शामिल से सीखों:

  • इस दृष्टिकोण का उपयोग करता है jQuery.  मेरे मामले में, मेरे jQuery पुस्तकालय में स्थित है "../ plugins. "  आप जो अपने पसंदीदा JQ स्थान को इंगित करने के लिए परिवर्तित करने के लिए चाहता हूँ.
  • आप की प्रतिलिपि बनाएँ और एक पृष्ठ पर सामग्री संपादक वेब पार्ट में उस पूरे टुकड़ा चिपकाएँ कर सकते हैं और यह काम करना चाहिए तो बस ठीक है।  आप API कॉल के अंत बिंदु परिवर्तित करें और सुनिश्चित करें कि आप सही ढंग से JQ को संदर्भित करने के लिए चाहता हूँ.
  • URL अपने एपीआई समाप्तिबिंदु के सापेक्ष है।  मेरे मामले में, यह उप-साइटों के नीचे पैदा कर रही है https://bigapplesharepoint.com
  • तुम एक सामग्री लंबाई प्रदान करने की आवश्यकता नहीं. कुछ ब्लॉग पोस्ट और MSDN दस्तावेज़ का तात्पर्य है कि आप, लेकिन मेरे लिए स्वचालित रूप से हुआ, जो मुझे लगता है $.ajax कॉल द्वारा खुद को संभाला जा रहा है.
  • इस लाइन से बचने के एक "मना" प्रतिसाद करने के लिए आवश्यक है: "एक्स-RequestDigest": $("#__REQUESTDIGEST").वैल().  यह करने के लिए अन्य तरीके हैं, लेकिन यह बहुत अच्छा है।  मैं ब्लॉग है कि यह शॉर्टकट प्रदान करने के लिए लिंक खो दिया है।  एच/टी तुम करने के लिए, रहस्यमय ब्लॉगर!

गुड लक और आशा है कि यह किसी को मदद मिलती है.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

त्वरित और आसान: SharePoint बाकी केवल रिटर्न कॉल 100 रिकॉर्ड्स

मैं एक सार्वजनिक सामना करना पड़ रहा वेब साइट पर मेरे SharePoint अभ्यास में यहाँ के लिए काम कर रहा है न्यू यार्क और यह जावास्क्रिप्ट और बाकी कॉल्स का एक बहुत का उपयोग करता है सामग्री दिखाएँ.

Mainline विकास के दौरान, मैं बस के साथ एक छोटे डाटासेट बनाएँ 10 या तो में कोई कस्टम सूची और बाकी कॉल मेरे सभी पंक्तियाँ वहाँ से खींच लिया।  एक बार मैं कुछ सौ पंक्तियों के डेटा के लिए अनुमानित वृद्धि दर का परीक्षण करने के लिए है के लिए सूची अप टकरा गया, मैंने पाया कि मैं ठीक हो रही थी 100 पंक्तियाँ मेरे बाकी कॉल पर वापस लौटे.

इस पते के लिए एक बहुत ही साधारण बात है।  मेरे मामले में (और मेरा मानना है कि ज्यादातर मामलों में), डिफ़ॉल्ट SharePoint करने के लिए कहता है बाकी (और संभवतः एक उद्योग मानक के रूप में?) वापस जाएँ 100 पंक्तियाँ।  डिफ़ॉल्ट रूप से अधिक पर लौटने के लिए, अपने फोन पर $top पैरामीटर का उपयोग करें, के रूप में:

/Insights Dev/_api/web/lists/GetByTitle पाने('MockBlog')/आइटम?$का चयन करें = ID,शीर्षक,श्रेणियाँ/शीर्षक,Blog_x0020_Author/शीर्षक,DatePublished,BlogSummary&$विस्तृत करें = Blog_x0020_Author,श्रेणियाँ&$फ़िल्टर =&$शीर्ष = 9999

मैं उठाया 9999 इस मामले में जब से मैं growth-wise पता है कि, वहाँ अभ्यस्त हो अधिक से अधिक 200 या तो पंक्तियाँ एक वर्ष में इस सूची में जोड़ा।  यदि यह छलकती हो जाता है, हम सड़क के नीचे कुछ पेजिंग को लागू कर सकते हैं.

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

गरीब आदमी जावास्क्रिप्ट में कैशिंग है

[TL;डॉ. संस्करण: async कॉल के परिणामों को संग्रहीत करने के लिए कुकीज़ का उपयोग करें; पिछले async कॉल का परिणाम तुरंत प्रस्तुत करना और फिर उन्हें पृष्ठ-लोड करने के बाद मान्य करें।]

मैं SharePoint इंट्रानेट साइट पर एक ग्राहक के लिए काम कि सुविधाओं कर दिया गया है, अन्य बातों के अलावा, एक stylized माध्यमिक नेवीगेशन जिसका मेनू विकल्पों के माध्यम से एक नियमित रूप से पुराने कस्टम सूची प्रबंधित कर रहे हैं।  विचार है कि ग्राहक को प्रभावित करने वाले या वैश्विक नेविगेशन द्वारा इसे बाहर डाल द्वारा प्रभावित किया जा रहा बिना "उनके" साइट मेनू नियंत्रण करने के लिए हो जाता है.

(वहाँ कुछ अविश्वसनीय रूप से एक CEWP कि बताते हैं कि कुछ सीएसएस और जे एस एक साइट के व्यवहार के बारे में लगभग सब कुछ मौलिक परिवर्तन करने के लिए लोड करता है, लेकिन है कि एक और पोस्ट के लिए किसी HTML फ़ाइल को जोड़ने के बारे में विध्वंसक है)

यह बहुत आसान के लिए कोड:

  • पेज लोड हो रहा है खत्म करो और एक async बाकी या lists.asmx या जो कुछ भी का उपयोग कर एक सूची से मेनू आइटम को लोड करने के लिए कॉल करने के लिए प्रतीक्षा करें
  • JQuery का उपयोग, गतिशील रूप से अगर एक गुच्छा आबाद <li>एक माता पिता के अंदर है <उल> (इस tecnnique की एक सरलीकृत विवरण के लिए ईसाई Pinder लेख यहाँ देखें)
  • सभी स्वरूपण करने के लिए सीएसएस का उपयोग करें
  • लाभ!

है गले में हाजिर यहाँ यह है कि हर बार किसी को भी साइट के पृष्ठों में से एक हिट, उस उपयोगकर्ता के वेब ब्राउज़र सूची से आइटम प्राप्त करने के लिए पहुँच रहा है।  एक बार देव पूरा हो गया है और परीक्षण किया जा करने के लिए बातें साबित हो गया है स्थिर और पूर्ण करें, इस कॉल अनावश्यक है अधिक से अधिक 99% समय के बाद से मेनू शायद ही कभी बदल जाता है।  यह भी एक अजीब UI प्रभावित इस बहादुर नई दुनिया में हाइपर ajaxy वेब साइटों की आम है जो है – पृष्ठ renders और केवल तब मेनू प्रदान करता है।  यह चिड़चिड़ा और मेरे विचार में ध्यान भंग है।  और चिड़चिड़ा. तो, कैशिंग। 

मैं तर्क thusly संशोधित:

  • यह देखो कि के रूप में मैं पिछले मेनू में होते हैं जो ब्राउज़र में एक कुकी के लिए पढ़ें
    • अगर पाया, यह तुरंत प्रस्तुत करना।  पेज लोडिंग समाप्त करने के लिए इंतजार मत करो।  (आप की जरूरत है अपने HTML रणनीतिक यहाँ रखा है यह सुनिश्चित करने के लिए, लेकिन ऐसा करना कठिन नहीं है).
  • पेज लोड हो रहा है खत्म करो और एक async बाकी या lists.asmx या जो कुछ भी का उपयोग कर एक सूची से मेनू आइटम को लोड करने के लिए कॉल करने के लिए प्रतीक्षा करें
  • क्या मैं कुकी के खिलाफ मिल गया की तुलना करें
    • यदि यह मैच, रुको
    • अन्यथा, jQuery का उपयोग, गतिशील रूप से अगर एक गुच्छा आबाद <li>है में एक <उल>
  • सभी स्वरूपण करने के लिए सीएसएस का उपयोग करें
  • लाभ!

आप में से कुछ कहने के लिए जा रहे हैं, "अरे! चूंकि आप मेनू पढ़ रहे हैं वैसे भी कोई वास्तविक कैशिंग यहाँ पर जा रहा है हर एक बार.”  और तुम ठीक कह रहे हैं-मैं किसी भी प्रकार के तोड़ सर्वर नहीं दे रहा हूँ।  लेकिन renders HTML पेलोड पूरी तरह से क्योंकि कॉल async है और पृष्ठ प्रारंभिक के बाद होता है, यह "उपयोगकर्ता के लिए और अधिक उत्तरदायी लगता"।  अधिक खींचता है पृष्ठ के रूप में सुंदर मेनू renders.  यदि मेनू में परिवर्तन होता है, उपयोगकर्ता एक नर्वस पुनः आरेखित मेनू के लिए अधीन है, लेकिन केवल उस एक बार.

वहाँ कुछ तरीके इस कैशिंग और अधिक प्रभावी बनाने के लिए और एक ही समय में बाहर सर्वर मदद कर रहे हैं:

  • एक नियम है कि "कुकी"कैश की एक न्यूनतम के लिए मान्य है में डाल दिया 24 घंटे या कुछ अन्य समय सीमा. वहाँ तक है कोई समयसीमा समाप्त कुकी, कुकी मेनू स्नैपशॉट का उपयोग करें और कभी नहीं सर्वर हिट.

.. ठीक है कि सभी कि मन अभी आया है :). 

अगर किसी को किसी भी चालाक विचारों यहाँ है मैं उन्हें पता है कि प्यार होता.

और अन्त में – यह तकनीक अन्य सामान के लिए इस्तेमाल किया जा सकता है।  इस क्लाइंट पृष्ठ डेटा-संचालित चीजों की एक संख्या है विभिन्न पृष्ठों पर, उनमें से कई अपेक्षाकृत शायद ही कभी बदल रहा (एक बार एक हफ्ते या महीने में एक बार की तरह).  यदि आप कार्यक्षमता की विशिष्ट क्षेत्रों को लक्षित, आप एक और अधिक उत्तरदायी UI सामग्री स्थानीय कुकी स्टोर से खींच और तुरंत प्रतिपादन के द्वारा दे सकते हैं।  यहां तक कि अगर तुम किसी भी चक्र सर्वर की बचत नहीं कर रहे हैं यह तेजी से उपयोगकर्ता के लिए लगता है।  तुम कर सकते हैं सर्वर साइकिल इस स्थानीय कुकी कैश अमान्य करने के लिए कुछ शर्तें और ट्रिगर्स पर तय करके सहेजें।  है कि सभी स्थिति और artsy सामान और वास्तव में सबसे ज्यादा मज़ा :). 

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin