Wenn ich einen modalen JQuery-Dialog in IE8 öffnen, geht meine CPU-Auslastung zu 100% (Nein, eigentlich 50, aber das ist 100% von einem Kern). Wenn ich Entwicklerwerkzeuge knacke, scheint es, dass es viele Größenänderungsereignisse sind, die feuern (ich mache keine freiwillige Größenänderung). Ist jemand anderes auf dieses Problem gestoßen und weiß, wie er es beheben kann?JQuery UI Modal Dialog verwendet 100% CPU
Antwort
Die Lösung ist dies auf Ihre CSS-Datei hinzufügen:
.ui-widget-overlay {
position: fixed;
}
Ich habe gesehen, wie Dinge passieren, wenn etwas einen Container mit 100% Breite und Höhe füllt, und dieser Container hat einen Überlauf: auto. Dadurch springt es endlos hin und her und versucht, in den Container zu passen, aber dann fügt der Container Bildlaufleisten hinzu oder entfernt sie. Ich weiß nicht, ob das auf Ihre Situation zutrifft, aber vielleicht etwas Ähnliches.
Was meinen Sie mit dem Befüllen eines Containers? Es erscheinen Scrollbalken auf dem Dokument für mich, wenn ich den Dialog öffne, so dass Sie wahrscheinlich zumindest teilweise Recht haben. Der Körper ist jedoch nicht einmal annähernd mit Dingen gefüllt. – erikkallen
Ich meine, wenn ein inneres Element die gleiche Größe wie ein Elternelement hat (oder etwas größer ist). Wenn Sie Bildlaufleisten sehen, sieht es so aus, als ob Ihnen das passiert. Sie müssen herausfinden, welches Element dies tut, und es so gestalten, dass es kleiner bleibt als das Elternelement. Die CPU-Auslastung ist auf den wiederholten Reflow zurückzuführen, der auftritt, wenn Bildlaufleisten wiederholt hinzugefügt und entfernt werden. Sie könnten den Body einfach überlaufen lassen: Er wird ausgeblendet, während das Dialogfeld angezeigt wird, und dann wieder zurück zu dem, was er nach dem Schließen war. – lod3n
Danke. Diese Lösung funktioniert, ist aber ein wenig zu schwerfällig (denke geschachtelte Dialoge). Ich werde es akzeptieren, wenn niemand eine bessere Idee hat. – erikkallen
ich ein ähnliches Problem hatte, wurde dh das windowResize Ereignis viele Male pro Sekunde Brennen und den Client-CPU maxing. Die hier beschriebene Reparatur funktionierte perfekt: http://www.frebsite.nl/projects/windowresizefix/
- 1. Jquery ui Dialog Modal True
- 2. jQuery UI Dialog (Modal), verhindert Postback
- 3. JQuery UI Modal-Dialog Triggern ASP.Net Updatesteuer
- 4. JQuery UI Slider in Modal Dialog
- 5. Kann jQuery UI modalen Dialog nicht modal
- 6. jquery modal dialog onclick?
- 7. jQuery modal Dialog über iFrame
- 8. JQUERY UI Modal Lernprogramm
- 9. jQuery-UI Dialog Speicherlecks
- 10. Div 100% Länge Deformat Bootstrap Modal Dialog
- 11. jQuery Modal-Dialog und jqGrid
- 12. jQuery UI Dialog Overlay
- 13. JQuery UI Dialog langsam
- 14. jQuery UI-Dialog Titelleiste Problem
- 15. jQuery UI Modal Fortschrittsbalken
- 16. Jquery Dialog modal nicht schließen
- 17. Problem mit Jquery UI Dialog
- 18. Java verwendet 100% der CPU auf Linux
- 19. jQuery UI Dialog Tasten
- 20. Transparente jQuery UI Dialog
- 21. jQuery UI Dialog OnBeforeUnload
- 22. jquery Ui-dialog und ie8
- 23. Knockout Js, JQuery UI Dialog und Teilansicht
- 24. Dialogfeld "JQuery UI Dialog" ('close'); funktioniert nicht
- 25. Hinzufügen Schaltfläche zu jquery UI-Dialog
- 26. jQuery modal form dialog postback probleme
- 27. Jquery Modal Dialog lädt mit alten Werten
- 28. deaktivieren Schließen-Schaltfläche in JQuery UI-Dialog
- 29. jquery Funktion in jquery-ui Dialog
- 30. Modal Dialog über ActiveX Steuerelement
Entschuldigung für die Annahme meiner eigenen Antwort, aber ich denke, es ist die beste Lösung. Nicht von IE6 unterstützt, aber IE6 hat sowieso einen anderen Codepfad im entsprechenden jQuery-Code (und ich weiß nicht, ob es ein Problem gibt). – erikkallen
Das hat es für mich behoben! Verwenden von JQuery 1.6 und JQuery UI 1.8.13. Die modalen Dialoge verursachten 100% CPU-Auslastung in IE7. Es konnte nicht die Höhe des Überlagerungs-DIV bestimmen, das im 'Modal'-Verhalten verwendet wird. Das Hinzufügen zum CSS behebt meine Probleme. Vielen Dank! – Sentient
Fixed für mich auf IE7. Du bist ein Lebensretter! – Nils