jQuery εναντίον όλων: ένα σημείο αναφοράς με 5 browser
Τετάρτη, 17 Σεπτεμβρίου 2008
Ένας καλός προγραμματιστής δεν έχει κανένα πρόβλημα να μετακινούνται από μια γλώσσα προγραμματισμού στην άλλη. Η επιλογή να επικεντρωθεί σε μια συγκεκριμένη γλώσσα, και πλαίσιο ανάπτυξης περιβάλλοντος, υπαγορεύεται περισσότερο από την διαθεσιμότητα του χρόνου και του είδους της εργασίας που πραγματοποιείται. Ωστόσο, ένας σημαντικός παράγοντας που μπορεί να επηρεάσουν την επιλογή του "πλαίσιο", όπως, είναι η συμπάθεια ή η πάθηση που μπορεί ώριμη την πάροδο του χρόνου.
Συγκεκριμένα, ήθελα να αναλύσει ορισμένες - δεν είναι όλα - Javascript πλαίσιο διαθέσιμα σήμερα, διότι "ενημέρωσε" για να εξετάσουμε κατά πρώτο λόγο στην jQuery.
Οι δημιουργοί του mootools (ένα από τα πιο δημοφιλή Javascript πλαίσιο) έχει διατεθεί ένα εργαλείο για τη λειτουργία μιας δοκιμής της ταχύτητας και της ισχύος των πέντε γνωστούς πλαίσιο Javascript: Slickspeed. Η δοκιμή αυτή, τα αποτελέσματα δεν έκπτωση σε όλα, είναι σημαντική, καθώς το πλαίσιο λειτουργίας Javascript client-side, η οποία διευθύνεται από τον φυλλομετρητή μας. Ακριβώς για το λόγο αυτό, μερικοί Safari ταχύτερα από τον Internet Explorer ή το Google Chrome γρηγορότερα από το Firefox. Ωστόσο, αυτό συχνά εξαρτάται από το είδος της σελίδα που βλέπετε. Στην πραγματικότητα, μπορεί να συμβεί πολύ καλά ότι μια συγκεκριμένη τοποθεσία είναι στην πραγματικότητα πιο "γρήγορο" όταν εμφανίζεται στο Safari, αλλά αυτό δεν σημαίνει ότι "όλες οι τοποθεσίες θα είναι ταχύτερη με Safari! Φυσικά, αυτή η ομιλία είναι έγκυρη για κάθε άλλο browser.
Σημείο αναφοράς
Σε δοκιμές που θα διεξαχθούν με Slickspeed έχω σχέση το πρόγραμμα περιήγησης που διατίθενται για το μηχάνημά μου (Utilmate Windows Vista 64bit - Intel Core 2 Quad 2.4GHz με 8GB RAM).
Δυστυχώς, οι δοκιμές δεν είναι σε θέση να το τρέξετε με τον Internet Explorer 7, διότι το κλείδωμα του αυτοκινήτου, ακόμη και παύσης της κλίμακας με τα αποτελέσματα! Και πάλι συγχαρητήρια Microsoft.
I crercato ταυτόσημες να διατηρήσει το καθεστώς του υπολογιστή κατά τη διάρκεια της δοκιμής, το άνοιγμα του browser ξεχωριστά και δεν στέλνει κανείς άλλος εκτελεί διαδικασία.
Σημείωση: Αν αισθάνεστε σαν να κάνεις μία ή περισσότερες από τις δοκιμές αυτές, μπορείτε να σχολιάσω αυτό το αξίωμα σε περίπτωση "περίεργος" και διαφορετικά αποτελέσματα.

Google Chrome είναι πραγματικά γρήγορα, με αξία 68 (μέσος όρος) σε δοκιμή με jQuery. Η πιο αργή, όμως, φάνηκε κοπαδιού, παρά προέρχονται από την ίδια "μητέρα" Mozilla. Αυτό το κακό αποτέλεσμα για σμήνος είναι πραγματικά περίεργο λόγω της κοπής κοινωνικό δίκτυο, διότι είναι το Δίκτυο Κοινωνικής Web 2.0 εκμεταλλευτεί πολλές από Javascript πλαίσιο, ώστε να παρέχουν ένα πλοήγησης και της αλληλεπίδρασης πραγματικά καινοτόμες.
Μια έκπληξη beat Firefox και Opera έχει επίσης πολλά », ακόμη και να τους δίνει μια 74 του Dojo! Firefox και Safari, μετά από όλα, είναι εξίσου, με το Safari πιο γρήγορα σε δοκιμές με Mootools και jQuery.
Ποιο πλαίσιο επιλογής;
Αν δεν badiamo να δοκιμαστεί η ταχύτητα στην εκτέλεση και δεν ενδιαφερόμαστε για το μέγεθος στη Kbytes του ιδίου πλαισίου, η απάντηση μπορεί να είναι "τι είναι για σας" ή, αν προτιμάτε, "Αυτό που γνωρίζω καλύτερα ή είναι πιο αρμονικό με το δικό σας στυλ του προγραμματισμού. "
Τελικά, αυτά τα πλαίσια, θα δούμε κάπως 'όλα (δείτε την χρήση του $ για παράδειγμα), παρά τις κάποιες σημαντικές και ουσιαστικές διαφορές που να μπορεί να μεταβεί στα μάτια ενός εμπειρογνώμονα ή πραγματικά ωθούνται σε μια συγκεκριμένη βιβλιοθήκη. Κατ 'αρχήν, στην πραγματικότητα, ό, τι αυτό μπορεί να επιτευχθεί με jQuery, για παράδειγμα, μπορείτε να το κάνετε καλά με mootools ή πρωτότυπο! Αν jQuery έχει ένα πολύ συμπαγή σύνταξη, όπως όλες οι μέθοδοι πάντα την επιστροφή jQuery αντικείμενο τη βάση, δημιουργώντας έτσι ατελείωτες αρχεία της oggetto.metodo().metodo().metodo()... λένε ότι αυτή είναι σε όλα τα κόστος μια δύναμη, ειδικά για εκείνους που θα πρέπει να debug!
Οι Βιβλιοθήκες prototype.js αμαρτία ίσως λόγω της απουσίας των γραφικών αποτελεσμάτων, ακόμη και απλή, αναγκάζοντας τον κύριο του έργου για την υλοποίηση Spin-off ως scriptaculous.js, βαριά και μακριά από τη βιβλιοθήκη πρώτη επιλογή.
Ένα παράδειγμα
Ακριβώς αυτό το τελευταίο λόγο, για παράδειγμα, χρειάστηκαν για να αντικαταστήσει το πρωτότυπο συνδυασμό / scriptaculous με jQuery να κάνουν οι ομάδες διαδραστικών / κινούμενα εδώ στο sidebar των undolog.com. Πράγματι, ακόμη και με το Google API για την εισαγωγή των βιβλιοθηκών, είναι ένα φορτίο αποβλήτων όλη τη βιβλιοθήκη scriptaculous για slideDown και slideUp. Για πληροφορίες και δείγμα, εδώ χθες κώδικα Javascript σε συνδυασμό με το πρωτότυπο / scriptaculous:
- / / Πρωτοτύπου / scriptaculous
- ) . each ( $ $ ( 'H2.dropdown'). Κάθε (
- element ) { λειτουργία (στοιχείο) (
- = "pointer" ; στοιχείο. στυλ. δρομέα = "pointer"?
- 'click' , στοιχείο. παρατηρεί ( «κλικ»,
- event ) { λειτουργία (γεγονός) (
- this . next ( ) . style . display == "" ) new Effect. BlindUp ( this . next ( ) , { duration:. 5 } ) ; εάν (this. επόμενη (). στυλ. οθόνης == "") νέα Effect. BlindUp (this. επόμενη (), (duration. 5))?
- Effect. BlindDown ( this . next ( ) , { duration:. 3 } ) ; Επιπτώσεις άλλο νέο. BlindDown (this. επόμενη (), (διάρκεια:. 3))?
- event ) ; Εκδήλωση. Stop (γεγονός)?
- )
- )
- )
- )?
και τώρα είναι με jQuery:
- / / JQuery
- ) . each ( $ ( 'H2.dropdown'). Κάθε (
- i ) { λειτουργία (s) (
- ) . css ( 'cursor' , 'pointer' ) . click ( $ (Η). Css ( «δρομέας», «δείκτη»). Κάντε κλικ (
- λειτουργία () (
- $ ( this ) . next ( ) . is ( ':hidden' ) ) $ ( this ) . next ( ) . slideDown ( ) ; else $ ( this ) . next ( ) . slideUp ( ) ; εάν ($ (αυτό). επόμενη (). είναι ( "κρυφές")) $ (αυτό). επόμενη (). slideDown ()? άλλο $ (αυτό). επόμενη (). slideUp ()?
- )
- )?
- )
- )?
Μετά από όλα, σε όλα, δεν νομίζω ότι υπάρχει μεγάλη διαφορά! Αλλά όπως είπα και πριν ... ερώτημα είναι "καλά" του προσωπικού γούστου.





















Luke είπε:
Γειά,
Στο παράδειγμα με jQuery δεν καταλαβαίνω γιατί έπρεπε να κάνουν κάθε μία. Στο τέλος var εγώ δεν το χρησιμοποιούν είτε.
Μπορούσε απλώς να είχε γίνει:
$ ( "H2.dropdown"). CSS ("[...]"). κλικ (λειτουργία (){[...]});Giovambattista Fazioli δήλωσε:
@ Luke: Έχετε απόλυτο δίκιο! Λάθος μου copy and paste! Undo ...
Ο κώδικας είναι:
jQuery: πώς θα οικοδομήσουμε μια επέκταση Προσθήκη | Undolog.com δήλωσε:
[...] Γράψτε ένα plugin με λίγες γραμμές κώδικα. Πάρτε ως παράδειγμα τον κώδικα προτείνεται στην jQuery εναντίον όλων: ένα σημείο αναφοράς με 5 browser που ήταν (μετά την διόρθωση που αναφέρθηκαν από Luca): Απλό Κείμενο [...]