Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Оптимизировать код. Помогите! (https://javascript.ru/forum/events/78709-optimizirovat-kod-pomogite.html)

Staurus 23.10.2019 23:18

Оптимизировать код. Помогите!
 
Добрый вечер. Помогите пожалуйста оптимизировать код, чтобы он работал быстрее и не загружался при window.onload, а работал сразу или синхронно с загрузкой страницы. Пробовал вставить DOMContentLoaded но скрипт перестает работать.

<script>window.onload=function(){var t=0;$(".attach_copy").each(function(){t+=1,1==t?(attach=$(this).clone().html(),attach=$("<div/>").attr("class","attach_copies").html(attach),$(".attach_new").append(attach).append("<br/>")):(attach=$(this).clone().html().replace("download.png","download-old.png"),attach=$("<div/>").attr("class","attach_copies").html(attach),$(".attach_old").append(attach).append("<br/>")),$(this).next("br").eq(0).remove(),$(this).remove()}),1==t?$(".attach_old").hide():0==t&&$(".attach_old, .attach_new").hide()};</script>

Malleys 24.10.2019 04:11

Очередные шифры? Кстати, жуквери не нужно, как и var. Добаыьте мутационный обсервер в начало страницы и теките от того, что сразу знаешь, что вставляетя

MutationObserver ищи в гугле и на мдн и в учебнике ильи

Staurus 24.10.2019 08:43

Слишком сложно =)

Staurus 24.10.2019 10:05

Цитата:

Сообщение от Malleys (Сообщение 514468)
Очередные шифры? Кстати, жуквери не нужно, как и var. Добаыьте мутационный обсервер в начало страницы и теките от того, что сразу знаешь, что вставляетя

MutationObserver ищи в гугле и на мдн и в учебнике ильи

Этот скрипт проверяет есть ли файлы в статье.
Если больше 1, то делает второй стиль для остальных файлов после первого. Если нет - то 1 стиль для 1 файла, для остальных убирает.
Если совсем нет файлов - нет отображения.

пример

И получается пока не прогрузится реклама, скрипт не хочет работать. А я хочу, чтобы он сразу работал не дожидаясь загрузки окна.

рони 24.10.2019 10:23

Цитата:

Сообщение от Staurus
Пробовал вставить DOMContentLoaded

<script>
$(function() {
var t=0;$(".attach_copy").each(function(){t+=1,1==t?(attach=$(this).clone().html(),attach=$("<div/>").attr("class","attach_copies").html(attach),$(".attach_new").append(attach).append("<br/>")):(attach=$(this).clone().html().replace("download.png","download-old.png"),attach=$("<div/>").attr("class","attach_copies").html(attach),$(".attach_old").append(attach).append("<br/>")),$(this).next("br").eq(0).remove(),$(this).remove()}),1==t?$(".attach_old").hide():0==t&&$(".attach_old, .attach_new").hide()});</script>

ставить после загрузки jquery, сразу.

Malleys 24.10.2019 11:40

Цитата:

Сообщение от рони
var t=0;

Видимо два разных человека писали.

Вот, потрансформировал простыню...
$(function(){var a=$(".attach_copy");a.each(function(a,d){var c=$(d),b=c.clone().html(),e=$("<div class='attach_copies'/>");0!==a&&(b=b.replace("download.png","download-old.png"));$(".attach_"+(0===a?"new":"old")).append(e.html(b),"<br/>");c.next("br:eq(0)").remove().end().remove()});$([".attach_old",".attach_new"].slice(0,Math.max(0,2-a.length)).join(",")).hide()});

Staurus 24.10.2019 14:18

Цитата:

Сообщение от Malleys (Сообщение 514479)
Видимо два разных человека писали.

Вот, потрансформировал простыню...
$(function(){var a=$(".attach_copy");a.each(function(a,d){var c=$(d),b=c.clone().html(),e=$("<div class='attach_copies'/>");0!==a&&(b=b.replace("download.png","download-old.png"));$(".attach_"+(0===a?"new":"old")).append(e.html(b),"<br/>");c.next("br:eq(0)").remove().end().remove()});$([".attach_old",".attach_new"].slice(0,Math.max(0,2-a.length)).join(",")).hide()});

Тысячу в карму! Прекрасно, именно то что и хотел.


Часовой пояс GMT +3, время: 06:33.