2015-09-16 5 views
12

का उपयोग कर प्रदर्शन समस्याएं मैं system.js (अपने ट्यूटोरियल्स के लिए इसका उपयोग करके कोणीय 2 से प्रेरित) के साथ खेल रहा हूं, लेकिन मुझे सबसे छोटे नमूने के लिए भी हास्यास्पद रूप से खराब प्रदर्शन मिलता है।System.js

उदाहरण के लिए निम्नलिखित कोड एक (!) 26000ms की देरी दूसरे के बीच ( System.import से पहले एक) और पिछले (में app.js) console.log जबकि चल रहा है स्थानीय स्तर पर (ताकि कोई नेटवर्क देरी)

सूचकांक है

। एचटीएमएल:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>System.js Sample</title> 
    <script>console.log("1: " + new Date().getTime());</script> 
    <script src="bower_components/system.js/dist/system.js"></script> 
</head> 
<body> 
<script> 
    console.log('2: ' + new Date().getTime()); 
    System.import('app.js'); 
</script> 
</body> 
</html> 

App.js:

console.log('3: ' + new Date().getTime()); 

मैं बोवर के माध्यम से नवीनतम system.js संस्करण स्थापित ("system.js": "~ 0.18.17") और निकाले गए सभी शेष कोड यह वास्तव में सिर्फ सिस्टम है। आयात कॉल जो उम्र लेता है। तो मैं क्या गलत हूं? नेटवर्क टैब जब क्रोम के तहत पृष्ठ को लोड करने की

चित्र: enter image description here

+1

मुझे याद है कि System.js में किसी प्रकार की बग है जो सिस्टम स्टाइल मॉड्यूल का उपयोग करते हुए इसे बहुत कमजोर बना देती है, लेकिन अगर एएमडी का उपयोग कर ठीक है तो ठीक है। यदि आप सिस्टम स्टाइल मॉड्यूल का उपयोग कर रहे हैं, तो एएमडी पर स्विच करने का प्रयास करें और देखें कि यह बेहतर प्रदर्शन करता है या नहीं। – Ixonal

+0

@ इक्सोनल इस बात पर विचार करते हुए कि मैं "सभी स्क्रिप्ट को एक में जोड़ता हूं, कम करता हूं और फिर एक स्क्रिप्ट टैग के रूप में शामिल करता हूं" की सच्ची और परीक्षण विधि से स्विच कर रहा हूं, मुझे थोड़ा और जानकारी चाहिए :) चूंकि कोणीय ट्यूटोरियल सिस्टम का उपयोग करता है। जेएस मैं इसके साथ रहना चाहूंगा (या क्या इसका मतलब सिर्फ एक अलग वाक्यविन्यास है लेकिन एक ही लाइब्रेरी है? हाँ मैं थोड़ा उलझन में हूं)। – Voo

+0

मुझे लगता है कि आप टाइपस्क्रिप्ट का उपयोग कर रहे हैं? आप अपने tsconfig.json फ़ाइल में मॉड्यूल के लिए कौन सी प्रणाली का उपयोग करते हैं यह सेट कर सकते हैं। बस मॉड्यूल को "amd" पर सेट करें। सिस्टम कॉमनजेएस, एएमडी, ईएस 6, और सिस्टम स्टाइल आयात को पहचान सकता है, इसलिए इससे कोई फर्क नहीं पड़ता कि क्या आपने एएमडी को ट्रांसफाइल किया है। – Ixonal

उत्तर

0

ध्यान रखें कि लोड स्क्रिप्ट अतुल्यकालिक रूप से system.js, 26ms में होने पर आपके स्क्रिप्ट का एक सामान्य लोड गति है। आपके स्थानीय सर्वर को अनुरोध/प्रतिक्रिया नौकरी को संसाधित करने के लिए कुछ समय चाहिए और इसके लिए कुछ देरी हो सकती है।

+0

26,000ms उर्फ ​​26 सेकंड। मेरी गलती अंग्रेजी नंबर विभाजक भ्रमित कर रही है। – Voo

+0

ठीक है, तो यह सामान्य नहीं है :) मुझे इस देरी के कारण system.js पर संदेह है। डेवलपर कंसोल (अपने ब्राउज़र में F12) -> 'नेटवर्क' टैब को जांचने का प्रयास करें। आपके द्वारा लोड किए गए सभी संसाधनों की समयरेखा होनी चाहिए। अपनी app.js स्क्रिप्ट के लोडिंग समय की जांच करें। –

+0

जो लोड करने के लिए केवल कुछ एमएस ले लिया। मैंने हालांकि पोस्ट में स्क्रीनशॉट जोड़ा। – Voo

0

प्रारंभिक कोणीय 2 क्विकस्टार्ट रेपो व्यक्तिगत रूप से आरएक्सजेएस फाइलों को लोड करेगा जो बहुत अधिक समय लेता है। आपको अक्सर 300+ अनुरोध किए जा रहे हैं। तब से उन्होंने इसे ठीक कर दिया है और आप आरएक्सजेएस मॉड्यूल आयात करते समय विशिष्ट होने के अनुरोधों को और कम कर सकते हैं। कोणीय क्विकस्टार्ट रेपो इन दिनों बहुत तेज है।

संबंधित मुद्दे