2010-07-18 13 views
13

मेरी वेबसाइट (Shadow animation jQuery plugin से) एक jQuery स्क्रिप्ट है जो लगातार मुख पृष्ठ पर विभिन्न <div> रों के बॉक्स छाया का रंग बदल जाता है।अक्षम JavaScript फ़ंक्शन उपयोगकर्ता के कंप्यूटर के प्रदर्शन के आधार

एनीमेशन आवश्यक नहीं है, लेकिन धीमी मशीनों पर यह बहुत सी CPU समय लेता है।

क्या यह पता लगाना संभव है कि स्क्रिप्ट 'बहुत धीरे-धीरे' चलती है या नहीं? प्रदर्शन को प्रभावित करने से पहले मैं इसे अक्षम कर सकता हूं।

क्या यह भी एक अच्छा विचार है? यदि नहीं, तो jQuery एनिमेट को तोड़ने का कोई आसान तरीका है?

+6

यदि यह कोई सांत्वना है - यह सुंदर दिखता है। – Metalshark

+2

मैं जावास्क्रिप्ट विशेषज्ञ नहीं हूं, लेकिन मेरा अनुमान है "आसानी से नहीं।" (मैंने हाल ही में इसी तरह के विचार के बारे में सोचना शुरू कर दिया।) अब तक, मेरा सबसे अच्छा सुझाव दिनांक वस्तु के माध्यम से अपनी खुद की प्रदर्शन निगरानी जोड़ना हो सकता है। हर बार एक नमूना लें और यदि अंतर कुछ सीमा से अधिक हो, तो स्क्रिप्ट को एनीमेशन करने से रोकें। लेकिन, हम देखेंगे कि किसी के पास एक और सही सुझाव है या नहीं!:) – mjschultz

+0

+1 क्लाइंट के प्रतिपादन प्रदर्शन को ध्यान में रखते हुए एक अच्छा विचार है। –

उत्तर

7

यह अप्रत्यक्ष रूप से आपकी समस्या का समाधान कर सकता है। इस साइट http://dromaeo.com/ से कुछ एल्गोरिदम और प्रदर्शन परीक्षण चुनें जो आपके jQuery प्लगइन के समान दिखते हैं। साइट पर किए जाने वाले व्यापक परीक्षण न करें। इसके बजाय, काफी छोटे और तेज़ एल्गोरिदम चुनें, और उन्हें एक अनजान अवधि के लिए चलाएं।

इन परीक्षणों को कितनी देर तक चलाने की अनुमति है, इस सीमा को सीमित करने के लिए एक छोटा पूर्वनिर्धारित समय अवधि का उपयोग करें। आइए मान लें कि क्या अवधि 200 एमएस है, और ब्राउज़र ए के साथ एक तेज मशीन पर, आप कुछ यादृच्छिक उपयोगकर्ता की मशीन पर 100 पुनरावृत्तियों को प्राप्त कर सकते हैं, यह केवल 5 पुनरावृत्तियों को पूरा करने में सक्षम है, तो आप इसे उपयोगकर्ता के अक्षम करने पर विचार करना चाहेंगे मशीन। जब तक आप इष्टतम संख्या नहीं पाते हैं तब तक ट्विक करें और ट्विक करें।

बोनस के रूप में, सभी परीक्षण परिणामों को अपने सर्वर पर वापस भेजें ताकि आपके पास एक बेहतर विचार हो कि आपके उपयोगकर्ता स्पीड स्पेक्ट्रम में कहां स्थित हैं। यदि उपयोगकर्ता का एक बड़ा बहुमत धीमे कंप्यूटर और पुराने ब्राउज़र का उपयोग कर रहे हैं, तो यह पूरी तरह से चीज़ को हटाने के लिए समझ में आता है।

+2

क्या आप कृपया बता सकते हैं कि परीक्षण के लिए स्रोत कोड कहां खोजें? – IgalSt

6

आप शायद लूप के चारों ओर कुछ समय के साथ ऐसा कर सकते हैं, जिसने पेज लोड पर कुछ गहन प्रसंस्करण किया था, लेकिन यह पृष्ठ को धीमा करने और सीपीयू लोड में और भी आगे बढ़ने जा रहा है, इसलिए यह एक महान प्रतीत नहीं होता है उपाय।

अतीत में मैंने जो समझौता किया है, वह ब्राउज़र संस्करण के आधार पर निर्णय लेना था, उदाहरण के लिए, इंटरनेट एक्सप्लोरर 6 उपयोगकर्ताओं को सरल सामग्री मिलती है जबकि बेहतर जावास्क्रिप्ट प्रदर्शन वाले नए ब्राउज़र एनीमेशन प्राप्त करते हैं। यह एक व्यावहारिक स्तर पर बहुत अच्छी तरह से काम करने लग रहा था। व्यावहारिक रूप से, ब्राउजर पसंद जावास्क्रिप्ट प्रदर्शन में एक बड़ा कारक है और आपको उस खाते में 9 0% फिट मिल सकता है जो आप इसे ध्यान में रखते हुए बस इतना चाहते हैं।

+0

फिर भी, दूसरा विचार कंप्यूटर प्रदर्शन की जांच करने में सक्षम नहीं होगा ... वास्तव में, फास्ट कंप्यूटर के कई मालिक धीमे सॉफ़्टवेयर का उपयोग कर रहे हैं क्योंकि वे यह नहीं देख सकते कि यह धीमा है। – mbq

+0

अच्छा विचार है लेकिन यह प्लगइन वैसे भी नए ब्राउज़र में काम करता है। – Pointy

+0

अच्छा विचार। मेरे पास कोई डेटा नहीं है, लेकिन मैं शर्त लगाता हूं कि आईई 6 चलाने वाले उपयोगकर्ता क्रोम चलाने वाले लोगों की तुलना में कम शक्तिशाली कंप्यूटर होने की अधिक संभावना रखते हैं (उदाहरण के लिए) –

1

ब्राउज़र चौड़ाई पाने के लिए आप $(window).width() जैसे कुछ कर सकते हैं। इसका उपयोग करके आप यह धारणा कर सकते हैं कि < 1024px चौड़ा कुछ भी नेटबुक, स्मार्टफोन या पुराना कंप्यूटर होने की संभावना है।

यह लूप का समय जितना सटीक नहीं होगा, लेकिन अधिक कुशल होगा।

स्पष्ट रूप से यह नियम एक सामान्यीकरण है और 1024px के साथ धीमे कंप्यूटर होंगे। लेकिन आम तौर पर एक 1024 पीएक्स + कंप्यूटर आमतौर पर जावास्क्रिप्ट का एक उचित हिस्सा संभालने में सक्षम होगा (जब तक मालिक सॉफ़्टवेयर, वायरस स्कैन और ब्राउज़र टूलबार लोड नहीं करता है!)

आशा है कि यह उपयोगी है!

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