Во-первых, нарушения нет. Во-вторых, нормальная фича. Я так отцу подарки заказываю. Он их потом спокойно по своей почте и телефону забирает из пункта выдачи
Тут стоит уточнить, что мемоизация (реселектом или нет не важно) для mapStateToProps нужна всегда, когда вы генерируете что-нибудь новое. Даже если это что-нибудь новое это просто создание простого объекта
Да, хорошее уточнение. Я его, пожалуй, в статью занесу, а то эта мысль как-то размазалась между первым и вторым советом.
Признаться не упирались в такое. Выпадет свободная минута — попробую побэнчить это дело. Умозрительно контейнеры выглядят даже большей проблемой — их точно больше 200 на странице, и каждый со своим mapStateToProps и возможностью перерисовать часть дерева под собой.
Сейчас глянул на одной из тяжелых страниц: около 100ни коллекций, редюсеров на вскидку 50-70. Возможно, дело в том, что мы очень сильно нормализуем данные. Вложенных структур почти не встречается в стейте: всё плоское и связано через айдишники. Следовательно, не получается и глубокой вложенности редюсеров. Они выходят очень точечными и работают на крайне небольшое количество экшенов. Как следствие, отрабатывают мгновенно: быстро понимают, что экшн не про них, и отдают текущий кусок стейта. Самый толстый редюсер (по памяти) штук 10 экшенов обрабатывает.
1) У них вроде API есть для заказов, личный кабинет и телефония. Причем тут email'ы и баба Нюра?
2) А с личным сайтом-магазином такого нет? Уверен, что претензию по заказу в 100 т.р. не робот рассматривать будет. И кажется, что в Яндексе не дураки сидят, чтобы не посмотреть, откуда лавина мелких заказов пришла. В любом случае это становится головной болью Яндекса, который не заинтересован просто так магазины банить, равно как и делать плохо клиентам. Опять же — у яМаркета есть арбитраж. Слитые заказы без недовольных клиентов — че-то подозрительно
3) Если Вам так важны бонусные программы конкретного магазина, вам не запрещают им пользоваться. По-моему, опыту все бонусные программы начинают приносить пользу, когда ты третий раз в течение короткого времени там что-то покупаешь. Т.е. ты, вроде как, их постоянный клиент. Зачем тогда мне яМаркет? Насчет ценовых спецпредложений — они отображаются на маркете
Специально пошел проверил в дебагере хрома различные разрешения экрана. Краткая характеристика всегда на первом экране вместе с фотографией. Равно как и огромные кнопки «Характеристики» и «Цены». Иногда в район одного скрола выпадает средняя цена с графиком. Кажется, что некритично. Да и средняя цена, это ведь как средняя температура по больнице — все равно надо идти и на продавцов смотреть
Кажется, что «серый» у трех производителей будет назван по-разному, а фильтровать товары их всех хочется. ИМХО в большее замешательство меня иногда вводят именно названия производителей
А можете конкретный пример модели/товара привести, когда такой сценарий не сработал?
Меня тоже немного расстроило, что прямого пути уйти на магазин не осталось, но кажется, что, кроме этого, сценарий остался такой же.
Те же товары, те же сравнения характеристик, а карточка модели, так, кажется, что стала даже более очевидной. Во всяком случае выбор одной модели ноутбука в разных модификациях стал точно прозрачнее с моего последнего раза
Если окажется, что ваш магазин, например, имеет самую дешевую или самую быструю доставку, то вы окажетесь на карточке модели во вьюпорте пользователя. Там еще высокий рейтинг есть и какие-то другие штуки.
На картинке в статье это прямоугольники в нижней части
Вот лично для меня найти консультанта в Икее квест почище поиска секретной срезки. Полмагазина обойдешь прежде чем кого-то встретишь. А, чтоб срезку найти надо просто голову поднять и смотреть по сторонам в поисках таблички. Так кстати видишь меньше ненужного товара (с поднятой головой в смысле).
По-видимому, Вы правы. Результаты совсем не идентичными получаются. jsFiddle
Вместо значения свойства переносится его дескриптор. По-видимому надо вызывать в этом месте Object.defineProperties… для которого тоже нужен будет полифил=)
Чтобы совсем исправиться за глупый вопрос, добавлю, что на MDN есть супер-продвинутый пример полифила Object.create по сравнению с канторовским, который упомянул wentout, и который использовал автор.
Полифил
if (typeof Object.create != 'function') {
// Production steps of ECMA-262, Edition 5, 15.2.3.5
// Reference: http://es5.github.io/#x15.2.3.5
Object.create = (function() {
// To save on memory, use a shared constructor
function Temp() {}
// make a safe reference to Object.prototype.hasOwnProperty
var hasOwn = Object.prototype.hasOwnProperty;
return function (O) {
// 1. If Type(O) is not Object or Null throw a TypeError exception.
if (typeof O != 'object') {
throw TypeError('Object prototype may only be an Object or null');
}
// 2. Let obj be the result of creating a new object as if by the
// expression new Object() where Object is the standard built-in
// constructor with that name
// 3. Set the [[Prototype]] internal property of obj to O.
Temp.prototype = O;
var obj = new Temp();
Temp.prototype = null; // Let's not keep a stray reference to O...
// 4. If the argument Properties is present and not undefined, add
// own properties to obj as if by calling the standard built-in
// function Object.defineProperties with arguments obj and
// Properties.
if (arguments.length > 1) {
// Object.defineProperties does ToObject on its first argument.
var Properties = Object(arguments[1]);
for (var prop in Properties) {
if (hasOwn.call(Properties, prop)) {
obj[prop] = Properties[prop];
}
}
}
// 5. Return obj
return obj;
};
})();
}
Не холивара ради, но меня интересует третья строчка в функции extend:
function extend(Child, Parent) {
var F = function() { }
F.prototype = Parent.prototype //
Child.prototype = new F() // при создании Child в __proto__ запишется наш родитель prototype
Child.prototype.constructor = Child // задаём конструктор, должен ссылаться на самого себя.
Child.superclass = Parent.prototype // чтобы иметь доступ к методам Parent
};
А мне вот настолько этого не хватает, что это чуть ли не единственная фича, ради которой я готов перелезть на образный «Вивальди». При условии нетормозящего браузера само собой
Я бы пошел дальше и разрешил бы в плашку свою картинку вставлять или текст. А то у меня теперь на экспресс-панели образовалась папка Sharepoint, в которой среди 10-ки закладок 5 одинаковы надписей: msdn. Приходится наводить на каждую, чтобы посмотреть, что там.
Причем при создании закладок подобное можно провернуть (хоть варианты предлагает), а вот исправить потом нельзя.
Во-первых, нарушения нет.
Во-вторых, нормальная фича. Я так отцу подарки заказываю. Он их потом спокойно по своей почте и телефону забирает из пункта выдачи
Да, хорошее уточнение. Я его, пожалуй, в статью занесу, а то эта мысль как-то размазалась между первым и вторым советом.
Признаться не упирались в такое. Выпадет свободная минута — попробую побэнчить это дело. Умозрительно контейнеры выглядят даже большей проблемой — их точно больше 200 на странице, и каждый со своим
mapStateToProps
и возможностью перерисовать часть дерева под собой.Сейчас глянул на одной из тяжелых страниц: около 100ни коллекций, редюсеров на вскидку 50-70. Возможно, дело в том, что мы очень сильно нормализуем данные. Вложенных структур почти не встречается в стейте: всё плоское и связано через айдишники. Следовательно, не получается и глубокой вложенности редюсеров. Они выходят очень точечными и работают на крайне небольшое количество экшенов. Как следствие, отрабатывают мгновенно: быстро понимают, что экшн не про них, и отдают текущий кусок стейта. Самый толстый редюсер (по памяти) штук 10 экшенов обрабатывает.
Только Вы забыли упомянуть, что
В контексте статьи, мне кажется, это важные уточнения
1) У них вроде API есть для заказов, личный кабинет и телефония. Причем тут email'ы и баба Нюра?
2) А с личным сайтом-магазином такого нет? Уверен, что претензию по заказу в 100 т.р. не робот рассматривать будет. И кажется, что в Яндексе не дураки сидят, чтобы не посмотреть, откуда лавина мелких заказов пришла. В любом случае это становится головной болью Яндекса, который не заинтересован просто так магазины банить, равно как и делать плохо клиентам. Опять же — у яМаркета есть арбитраж. Слитые заказы без недовольных клиентов — че-то подозрительно
3) Если Вам так важны бонусные программы конкретного магазина, вам не запрещают им пользоваться. По-моему, опыту все бонусные программы начинают приносить пользу, когда ты третий раз в течение короткого времени там что-то покупаешь. Т.е. ты, вроде как, их постоянный клиент. Зачем тогда мне яМаркет? Насчет ценовых спецпредложений — они отображаются на маркете
На мой вкус, не так критично, чтобы сервисом стало неудобно пользоваться, но у Вас вкус, очевидно, другой.
Меня тоже немного расстроило, что прямого пути уйти на магазин не осталось, но кажется, что, кроме этого, сценарий остался такой же.
Те же товары, те же сравнения характеристик, а карточка модели, так, кажется, что стала даже более очевидной. Во всяком случае выбор одной модели ноутбука в разных модификациях стал точно прозрачнее с моего последнего раза
На картинке в статье это прямоугольники в нижней части
jsFiddle
Вместо значения свойства переносится его дескриптор. По-видимому надо вызывать в этом месте Object.defineProperties… для которого тоже нужен будет полифил=)
Чем Вам не угодил Object.create?
habrahabr.ru/company/tm/blog/139897/
Пошел качать себе помодор
Для Chrome и Opera: chrome.google.com/webstore/detail/strict-workflow/cgmnfnmlficgeijcalkgnnkigkefkbhd?hl=ru
Ну или вот все помодоры для chrome:
chrome.google.com/webstore/search/pomodoro?hl=ru
Причем при создании закладок подобное можно провернуть (хоть варианты предлагает), а вот исправить потом нельзя.
Лично мне напомнило вот такую вещь: