jQuery-ui Dialog - все эти фантомные DIV вставлены на мою страницу - PullRequest
0 голосов
/ 09 декабря 2010

в моем приложении я использую несколько разных диалоговых окон, которые содержатся в моем базовом файле JS. Это привело к созданию нескольких скрытых DIV на каждой странице. Что выглядит как пустая трата времени, снижение производительности и т. Д. Почему диалоговое окно jQuery UI создает эти DIV и как вы можете сделать так, чтобы они появлялись только тогда, когда вы действительно вызываете для отображения диалога?

Это то, что у меня внизу страницы, некоторые из них:

<div style="display: none; z-index: 1000; outline-width: 0px; outline-style: initial; outline-color: initial; " class="ui-dialog ui-widget ui-widget-content ui-corner-all dialog" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-sssss">...........

Код, который я использую для своих диалогов: (в частности, 1 диалог):

 permissions = $('<div id="dialog-content"></div>')
.html('<div class="notification"><h4>Loading...</h4></div>')
.dialog({
    autoOpen: false,
    dialogClass: 'dialog',
    width: 460,
    minHeight: 80,
    position: ['center',130],
    open: function() {
        $.ajax({.......})
    },
    close: function() {
        // Remove out the Dialog so it show's loading... nex time
        $('#dialog-content').html('<div class="notification"><h4>Loading...</h4></div>');
    }       
});
$(".teammember-dialog").live("click",function(){
    permissions.dialog('open');
    return false;
});

Есть идеи? или мысли?

Спасибо

1 Ответ

0 голосов
/ 09 декабря 2010

Не знаю, технически ли это "ответ", но раз ты спрашивал мысли ...

Как вы уже поняли, "призрачные дивы" - это дивы, которые jQueryUI будет использовать для создания реальных диалоговых окон.

Что касается того, является ли создание всех диалогов заранее или нет «потерей» или «падением производительности», я бы сказал, что это звучит так, как будто вы преждевременно беспокоитесь об оптимизации. Я не утверждаю, что знаю, сколько людей используют диалоги jQuery, но, учитывая популярность библиотеки, я бы сказал, что это достаточно значительное число, что если бы возникли проблемы с производительностью, мы бы услышали об этом *. 1005 *

Я понимаю и уважаю желание создать максимально эффективный сайт или приложение, но всегда есть «удачная среда» между приемлемой производительностью и поддерживаемым кодом.

Я не знаю, почему jQuery создает элементы div заранее, и при этом я не знаю, какой из «попаданий» это приводит. Я полагаю, что создание элементов div во время выполнения (так как запрашивается каждый элемент div) пользователь видит достаточно заметную задержку между временем, когда они запускают диалоговое окно, и временем, когда оно появляется?

Полагаю, когда все сказано и сделано, я бы просто спросил, нет ли у вас проблем с производительностью на странице. Это загрузка - заметно - медленнее, чем это было до реализации диалогов? Если это так, и если вы действительно хотите вникнуть в «почему», я бы, вероятно, предложил связаться с хорошими людьми в jQueryUI. Предоставьте им некоторый код и посмотрите, считают ли они, что есть основания пытаться реорганизовать код, чтобы выжать из него еще больше производительности.

...