2008 20 Ιούνη 2008
Αν έχετε κάνει ποτέ (ή κάνοντας ένα) ένα κάθετο μενού χρησιμοποιώντας στοιχεία της λίστας (LI) ετικέτες και CSS, μπορείτε να αντιμετωπίσετε, αυτό ακόμη σφάλμα στον Internet Explorer, όπου IE 6 εισάγει αυτά τα κενά μεταξύ των στοιχείων λίστας που περιέχει στοιχεία επιπέδου μπλοκ, δηλαδή αν υπάρχει κενό μεταξύ των στοιχείων λίστας στη σήμανση. Ευχαριστώ, αλλά δεν χάρη, η έκδοση του IE 7 φαίνεται απαλλαγμένο από αυτό το bug.
Αν, όπως εγώ, και πολλά άλλα, ανήκετε σε αυτή την μπάντα του απογοητευμένοι προγραμματιστές, οι οποίοι εξακολουθούν να πρέπει να πάρετε νέες διατάξεις τους, που εργάζονται στον IE6 πάρα πολύ, τότε αυτό θα μπορούσε να αποδειχθεί χρήσιμη. Ρίξτε μια ματιά ...
Δείγμα σήμανσης:
<ul id="menu">
<li> <a href="#"> Αρχική </ a> </ li>
<li> <a href="#"> Σχετικά </ a> </ li>
<li> <a href="#"> Υπηρεσίες </ a> </ li>
<li> <a href="#"> χαρτοφυλάκιο </ a> </ li>
<li> <a href="#"> Συχνές Ερωτήσεις </ a> </ li>
<li> <a href="#"> Επικοινωνία </ a> </ li>
</ Ul>
Μπορείτε να δημιουργήσετε κάποια CSS, παρόμοιο με το παρακάτω, για να transfrom την παραπάνω σήμανση σε ένα κάθετο μενού ....
Δείγμα CSS ...
# {Μενού
margin: 0? padding: 0? υπόβαθρο: # FF9900?
κατάλογος-style-type: κανένας? πλάτος: 150px?
}
# Li μενού {margin: 0? Padding: 0?}
# Ένα μενού {display: block?
χρώμα: # 555555?
text-decoration: κανένας?
padding: 0 15px?
γραμμή-ύψος: 2,5? σύνορα-κάτω: 1px solid # FFF?
}
Τα αποτελέσματα θα δείτε ...
Λύση για αυτό το σφάλμα ... (τροποποίηση / προσθήκη CSS με έντονους πλάγιους χαρακτήρες)
# {Μενού
margin: 0? padding: 0? υπόβαθρο: # FF9900? λίστα-style-type: κανένας? πλάτος: 150px?
float: αριστερά? / * αυτό περιέχει επέπλευσε στοιχεία λίστας * /
}
# Li μενού {
margin: 0? padding: 0?
float: αριστερά? / * Αυτό καθορίζει το * /
πλάτος: 100%? / * κενό bug στον IE6 * /
}
# Ένα μενού {
display: block? χρώμα: # 555555?
text-decoration: κανένας?
padding: 0 15px?
γραμμή-ύψος: 2,5? σύνορα-κάτω: 1px solid # FFF?
}
Εάν η παραπάνω λύση doesnot φαίνεται να λειτουργεί (για λόγους που είναι γνωστοί μόνο στον IE6) ... δοκιμάστε τη μέθοδο αυτή, αντί
Απλά προσθέστε αυτό το πρόσθετο IE6 μόνο στο στυλ σας σήμανσης ...
<-! [Αν lt IE 7>
<style type="text/css">
# Li ένα μενού {display: inline-block?}
# Li ένα μενού {display: block?}
</ Span>
<[Endif] ->
υπάρχουν σχόλια | ετικέτες: IE Bugs , IE Διορθώσεις , IE Hacks , δηλ. ζητήματα , IE6 , Tutorials | δημοσιεύτηκε στις Παραξενιές Browser , CSS
2008 6 Ιουν 2008
Περισσότερα στοιχεία τα DOM στη σελίδα, καθιστά πιο αργή, πιο αργή είναι η πρόσβαση στο DOM της JavaScript. Ένας μεγάλος αριθμός των DOM στοιχεία μπορεί να οφείλεται κακό σχεδιασμό διάταξης. Για παράδειγμα, ένθετους πίνακες ενδέχεται να έχουν χρησιμοποιηθεί για σκοπούς διάταξης. Χρησιμοποιήστε οποιαδήποτε ετικέτα HTML, όπου είναι λογικό σημασιολογικά. Για παράδειγμα πίνακες για χρήση donot διατάξεις, αλλά donot διστάσετε να τις χρησιμοποιήσουν, όπου μπορείτε να εμφανίσετε τα δεδομένα σε μορφή πίνακα, και ως εκ τούτου θα χρησιμοποιήσει μειώσει DOM στοιχεία, σε σχέση, σε μια παρόμοια δομή που δημιουργήθηκε χρησιμοποιώντας μόνο divs ..
Για να ελέγξετε τον αριθμό των DOM στοιχεία στην HTML σελίδα σας, πληκτρολογήστε απλά το εξής στην κονσόλα του Firebug του: document.getElementsByTagName('*').length
Δεν υπάρχει πρότυπο που ως προς το πόσα στοιχεία DOM είναι πάρα πολλά. Ελέγξτε άλλες παρόμοιες σελίδες που έχουν καλή markup.Eg. Αρχική σελίδα του Yahoo! είναι ένα πολύ απασχολημένος σελίδα και ακόμα κάτω από 700 στοιχεία (HTML).
Δεν υπάρχουν σχόλια | ετικέτες: Best Practices , DOM | δημοσιεύτηκε στις Βέλτιστες Πρακτικές , User Interface desgin
2008 2 Ιουνίου, 2008
Χρησιμοποιήστε πάρει Αιτήσεις για το AJAX
Έχει διαπιστωθεί ότι όταν χρησιμοποιείτε το XMLHttpRequest, ΜΕΤΑ εφαρμόζεται στα προγράμματα περιήγησης σε δύο στάδια: την αποστολή των κεφαλίδων πρώτα και στη συνέχεια την αποστολή δεδομένων. Έτσι, είναι καλύτερο να χρησιμοποιήσετε GET, το οποίο λαμβάνει μόνο ένα TCP πακέτο να στείλει (εκτός αν έχετε πολλά τα cookies). Το μέγιστο μήκος διεύθυνση URL στον IE είναι 2Κ, οπότε αν έχετε να στείλετε περισσότερους από 2Κ δεδομένα ενδέχεται να μην είναι σε θέση να χρησιμοποιήσει GET.
Μια ενδιαφέρουσα πλευρά επιρροή είναι ότι POST χωρίς στην πραγματικότητα να δημοσιεύσετε οποιαδήποτε στοιχεία που συμπεριφέρεται όπως GET. ΠΑΡΤΕ προορίζεται για ανάκτηση πληροφοριών, οπότε είναι λογικό (σημασιολογικά) να χρησιμοποιούν ΠΑΡΕΙ όταν ζητάτε μόνο τα δεδομένα, σε αντίθεση με την αποστολή δεδομένων που θα αποθηκεύονται στην πλευρά του διακομιστή.
Αποφύγετε Σύγχρονη καλεί AJAX
Όταν κάνετε "Αίας" αιτήσεων, μπορείτε να επιλέξετε είτε async ή λειτουργία συγχρονισμού. ASYNC λειτουργία λειτουργεί το αίτημα στο παρασκήνιο, ενώ άλλες δραστηριότητες, πρόγραμμα περιήγησης μπορεί να συνεχίσει να επεξεργάζεται. Συγχρονισμός λειτουργία θα περιμένει για το αίτημα να επιστρέψει πριν συνεχίσετε.
Οι αιτήσεις που υποβάλλονται με τη λειτουργία συγχρονισμού θα πρέπει να αποφεύγεται. Τα αιτήματα αυτά θα προκαλέσουν το πρόγραμμα περιήγησης για να κλειδώσει για το χρήστη μέχρι να επιστρέψει αιτήματος. Σε περιπτώσεις όπου ο διακομιστής είναι απασχολημένος και η απάντηση διαρκεί μια στιγμή, το πρόγραμμα περιήγησης του χρήστη (και ίσως OS) δεν θα επιτρέψει κάτι άλλο να γίνει. Στις περιπτώσεις όπου μια απάντηση ποτέ λάβει σωστά, ο περιηγητής μπορεί να συνεχίσει να μπλοκάρει μέχρι η αίτηση έληξε.
Αν νομίζετε ότι η κατάστασή σας απαιτεί λειτουργία συγχρονισμού, το πιθανότερο είναι καιρός να ξανασκεφτούμε το σχέδιό σας. Πολύ λίγα (αν υπάρχει) καταστάσεις απαιτούν πραγματικά Ajax αιτήματα σε λειτουργία συγχρονισμού.
1 σχόλιο | ετικέτες: AJAX , Βέλτιστες Πρακτικές | δημοσιεύτηκε στην AJAX , Βέλτιστες Πρακτικές , User Interface desgin