Mit neuen Browsererweiterungen wie CSS3-Animationen, Farbverläufen, SVG-Hintergründen usw. wird es für neuere Browser überflüssig, älteren CSS-Code herunterladen zu müssen Laden Sie den erweiterten CSS-Code herunter. Also wie könnten Sie auf HTTP-Ebene (kein serverseitiger Programmieransatz) mit einem solchen Problem umgehen? Sollten Sie eine base.css-Datei haben, die an beide Gruppen von Browsern geliefert wird und danach eine zusätzliche CSS-Datei geliefert bekommen, abhängig davon, welche Browsergruppe sie anfordert? Gibt es eine Möglichkeit, eine CSS-Datei einzufügen, die den Browser einfach an die browsergruppenspezifische Neuschreibung weiterleitet? Oder ist das etwas, das zuerst auf der Clientseite ermittelt und heruntergeladen werden sollte?So verwalten Sie Assets für moderne/alte Browser
Antwort
Ich habe festgestellt, dass es drei Möglichkeiten gibt, dies zu tun.
eine große Datei für jeden der Sheet verwenden und Vermögenswerte JavaScript und dann so etwas wie modernizr und Funktion auszusondern verwenden Schnüffeln, welcher Browser, was der Fall ist. Oder lassen Sie alle Browser dasselbe machen. Dies ist besser für Entwicklungseingaben und Tests.
Verwenden Sie zwei Dateien (eine mit der Bezeichnung ancient.css und eine andere mit der Bezeichnung modern.css), und verwenden Sie eine serverseitige HTTP-Sniffer-Operation, um die Version des Browsers anzuzeigen und die entsprechende Datei bereitzustellen. Setzen Sie das HTTP-Caching in der fernen Zukunft ab, um zu verhindern, dass es jedes Mal auf den Server zugreift, um zu prüfen, welche Datei heruntergeladen werden soll. Um die Dateien zu generieren, erstellen Sie einfach eine Datei mit allen wichtigen Komponenten, die von allen Browsern gemeinsam genutzt werden, und einer anderen mit dem emulierten Zeug für die älteren Browser. Der Vorteil ist, dass Sie alle neuen CSS3- und HTML5-JavaScript-Sachen verwenden können, aber der Nachteil ist, dass Sie testen müssen, um sicherzustellen, dass der Code-Code des modernen Browsers genauso funktioniert wie das alte Zeug.
Haben Sie zwei Asset-Dateien (modern + alt) und haben Sie einen modernen Download zuerst. Dann lassen Sie den Browser sehen, ob er etwas über modernizr unterstützt, und wenn nicht, dann laden Sie die alte Datei herunter. Der Vorteil hier ist, dass Sie keine zusätzlichen serverseitigen Sachen entwickeln müssen, aber der Nachteil ist, dass Ihre Website langsamer rendert und Sie mehrere Downloads derselben Ressource zur gleichen Zeit haben können.
Wenn Sie die Konzepte von graceful degradation und progressive enhancement vollständig umsetzen, können Sie dieselbe css für alle Zielbrowser verwenden - kurz gesagt, wenn ein Browser keine abgerundeten css3-Ecken unterstützt - geben Sie ihm die Regel mit dem Hersteller; Wenn es das auch nicht unterstützt - kein Problem, die Seite wäre immer noch mit eckigen Ecken verwendbar. Der Overhead des Herunterladens von Regeln mit herstellerspezifischen Präfixen sowie Standard-Downloads wäre im Vergleich zu einer zusätzlichen http-Anfrage minimal und würde die Wartbarkeit verbessern sowie Ihnen Ärger ersparen, da Sie sich nicht auf die Browser-Erkennung verlassen müssen.
Layout-spezifische Hacks müssten normalerweise nur auf die IE-Familie angewendet werden, auf die HTML-bedingte Kommentare abzielen.
- 1. So verwalten Sie DOM-Elemente
- 2. So verwalten Sie ein Webportal
- 3. So verwalten Sie Repositories auf GitHub
- 4. So verwalten Sie Konflikte mit Dritten CSS
- 5. So verwalten Sie lokale SQL Server-Datenbankdateien?
- 6. So verwalten Sie Sitzung in MVC-Anwendung
- 7. So verwalten Sie Offline-Testablauf für eine Android-Anwendung?
- 8. So verwalten Sie eine JMX-Webanwendung
- 9. So verwalten Sie die Anmeldung in Flüche
- 10. So verwalten Sie IIS von der Webseite
- 11. So verwalten Sie mehrere pageIndicator zur Laufzeit
- 12. So verwalten Sie Aktualisierungen der SQL-Struktur
- 13. So verwalten Sie die Versionierung mit SugarORM
- 14. So verwalten Sie den Wartungszustand in CodeIgniter
- 15. So verwalten Sie benutzerdefinierte Voreinstellungen Layout
- 16. So aktualisieren Sie eine im Ordner "Assets" gespeicherte Datenbank Android
- 17. Verwalten von Assets zwischen Desktop und Geräteversion in libgdx
- 18. So laden Sie ein bestimmtes Bild aus Assets mit Swift
- 19. So senden Sie Textnachrichten Browser in webrtc zum Browser?
- 20. silverstripe - Dateiberechtigungen für Ordner "Assets"
- 21. So erhalten Sie Assets img URL in Symfony Controller
- 22. So speichern Sie Bild aus Assets ausgewählt Xcode swift
- 23. Wie verwalten Sie Stile für untergeordnete Komponenten?
- 24. So sehen Sie, was der Browser sendet
- 25. So erhalten Sie den Browser "Document Mode"
- 26. So verwalten Sie die JWT-Authentifizierung auf Symfony 3
- 27. So verwalten Sie verkettete AJAX-Anrufe mit jQuery
- 28. So erstellen und verwalten Sie das Fußzeilenmenü in Drupal?
- 29. So verwalten Sie benutzerdefinierte Schriftarten in der Webanwendung (system.drawing)
- 30. So verhindern Browser-Cache für PHP-Site