Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Элитного кода тред (https://javascript.ru/forum/offtopic/57197-ehlitnogo-koda-tred.html)

trikadin 24.07.2015 21:58

Цитата:

Сообщение от Safort
Он робот, клонировавший себя.

Или клон, роботизировавший себя :blink:

EmperioAf 24.07.2015 21:59

а виновника торжества уже забанили?
И где можно посмотреть список банов?

devote 24.07.2015 22:13

Цитата:

Сообщение от EmperioAf
И где можно посмотреть список банов?

это доступно только модераторам и администратору

Deff 24.07.2015 22:32

Как-то Вы не тем заняты, вот затравка:
Cокращение больших идентичных кусков на странице(актуально для моего сервиса с кучей форумов и кучей идентичных страниц.
<!--Подгрузка с кешированним на клиенте редко меняемых секций HTML кода на странице -->
<script type="text/javascript">(function(){var a="FORUM:form#post",lnk="/files/content_form_post/1437607164.txt",
b='<!--|·|-->',html,c='/',reg=eval(c+b+c+'g'),b=b.split('|'),storag=window.localStorage; var d=+new Date();
if(storag)html=storag[a];if(html){c=html.substr(0,100).split(reg);if(c=(c[1]==lnk)){document.write(html);return;}} 
if(!html||!c){c=c?'':'?'+d;html = $.ajax({url:lnk+c, async: false, cache:!c}).responseText; document.write(html);
if(!storag)return; storag[a]=b[0]+ lnk + b[1] + d + b[2]+html}}());
</script>

Нужный кусок кода страницы засовываем в файл /files/content_form_post/1437607164.txt , в даннном случае у меня форма ответа со всякими BB-наворотами, весом под 100кб. Скрипт ставим в то место страницы, где должен появиться контент. Получилась экономия трафика около 10% на страницу в топике с сообщениями и формой, коих основная масса /80% под юзером/, все скрипты и стили (если есть в виде загружаемых файлов) - разворачиваем в полный код, когда суём в файл подгрузки.
var a="FORUM:form#post" - своё новое значение переменной для загрузки иной секции(отличной от текущей).

cyber 24.07.2015 22:42

kobezzza, чет я не пойму как подключить хтмл в js, через webpack, через что я не тупоб в доке)

cyber 24.07.2015 23:14

Пытался что то такое сделать

module.exports = function ( app ) {
    app.derictive ( "ngDynamicSelect", function ( ) {
        return {
            restrict: "A",
            template: require( "../templates/list.html" ),
            scope: {
                ngDynamicLest: "="
            }
        }

    } )
};

gulpfile

var gulp = require('gulp'),
    webpack = require ( "webpack" );

gulp.task("webpack", function(callback) {
    webpack({
        entry: [ "src/directives/dynamic-select" ],
        output: {
            filename: "dist/ngDynamicSelect.js"
        }
    }, function(err, stats) {
            console.log( err);
        callback();
    });
})

gulp.task('default', [ "webpack" ] );

kobezzza 25.07.2015 11:44

Цитата:

Сообщение от cyber (Сообщение 381403)
kobezzza, чет я не пойму как подключить хтмл в js, через webpack, через что я не тупоб в доке)

Тебе нужно задать скрипт лоадер для этого, а именно https://github.com/webpack/raw-loader

Дока у веб-пака говно, но я настоятельно рекомендую потратить время на этот сборщик, ибо он действительно великолепен.

nerv_ 25.07.2015 15:17

Цитата:

Сообщение от cyber
Пытался что то такое сделать

http://javascript.ru/forum/offtopic/...tml#post381296

cyber 25.07.2015 15:35

kobezzza, спасибо)
nerv_, окай)

Erolast 11.08.2015 17:17

Переписанный под синтаксис ES5 пример множественного наследования, специально для foo:
function inherits(subClass, superClass) {
    if (typeof superClass !== "function" && superClass !== null) {
        throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
    }
     
    Object.setPrototypeOf(subClass.prototype, superClass && superClass.prototype);
    
    if (superClass) {
        Object.setPrototypeOf(subClass, superClass);
    }
}

function pluralParent() {
    var parents = [].slice.call(arguments);
    
    //Наследование конструктора
    var DerivativeParent = function() {
        var i;
        var Parent;
        
        for (i = 0; i < parents.length; i++) {
            Parent = parents[i];
            Object.assign(this, new Parent());
        }
    };
    
    //Наследование свойств прототипа
    DerivativeParent.prototype = new Proxy(DerivativeParent.prototype, {
        get: function(target, name) {
            if (name in target) {
                return target[name];
            }
            
            var i;
            var Parent;
            
            for (i = 0; i < parents.length; i++) {
                Parent = parents[i];
                if (name in Parent.prototype) {
                    return Parent.prototype[name];
                }
            }
        }
    });
    
    //Наследование статических свойств класса
    DerivativeParent = new Proxy(DerivativeParent, {
        get: function(target, name) {
            if (name in target) {
                return target[name];
            }
            
            var i;
            var Parent;
            
            for (i = 0; i < parents.length; i++) {
                Parent = parents[i];
                if (name in Parent) {
                    return Parent[name];
                }
            }
        }
    });
    
    return DerivativeParent;
}

var Cat = function() {
    this.isACat = true;
}

Cat.prototype.meow = function() {
    console.log("meow");
}

var Dog = function() {
    this.isADog = true;
}

Dog.prototype.bark = function() {
    console.log("woof");
}
 
var CatDog = function() {
    //Вызвать родительский конструктор. Можно не вызывать - тогда установленные в конструкторах свойства не унаследуются.
    Object.getPrototypeOf(this.constructor).apply(this, arguments);
};
inherits(CatDog, pluralParent(Cat, Dog));

 
var catDog = new CatDog();
 
catDog.meow();
catDog.bark();
console.log(catDog);


Запускать надо в последнем FF (IceCat на дебиане): v8 еще не поддерживает вошедшие в релиз стандарта прокси ES6.


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