The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В Firefox началось тестирование отправки файлов, голосового ..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "В Firefox началось тестирование отправки файлов, голосового ..." +1 +/
Сообщение от Lain_13 (ok), 03-Авг-17, 11:46 
Должно быть вы живёте в какой-то альтернативной реальности. Обфускация подразумевает намеренное запутывание логики кода и тут не обойтись без дополнительных операций. Порой ещё и намерено добавляя большие участки кода, которые после выполнения не меняют ровно ничего. Обычно это не только не уменьшает, а только увеличивает конечный размер кода. Т.е. он и грузится дольше, и после этого исполняется дольше.
Скорее всего вы путаете обфускацию с оптимизацией. Оптимизация кода по размеру и скорости часто приводит к странному и тяжело читаемому синтаксису вперемешку с заменой всех имён на 1-3 символа. Естественно всё это без какой-либо разметки и комментариев. Для ещё большей оптимизации по размеру могут применяться техники архивации со встроенным разархиватором. Это позволяет быстрее скачать крупные скрипты на медленном соединении и раньше приступить к их выполнению. Правда это имеет смысл только если на сервере, с которого скрипт отдаётся, не настроено сжатие по-умолчанию.

Т.е. если у нас есть код:
function hideSomething(parent)
{
    parent.querySelector('#something').style.display = 'none';
}
hideSomething(document);

То вот это сойдёт за оптимизацию:
(d=>d.querySelector('#something').style.display='none')(document)

А вот это пусть и простая, но уже обфускация ("упаковка" + запутанный код):
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('!8(a){a=a.9(a=>7(a)),(b=>b[a[5]][a[0]](a[1])[a[6]][a[2]]=a[3])(c(a[4]))}(["d","e","f","g","h","i","j"])',20,20,'|||||||atob|function|map|||eval|cXVlcnlTZWxlY3Rvcg|I3NvbWV0aGluZw|ZGlzcGxheQ|bm9uZQ|d2luZG93|ZG9jdW1lbnQ|c3R5bGU'.split('|'),0,{}))

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
В Firefox началось тестирование отправки файлов, голосового ..., opennews, 01-Авг-17, 20:34  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру