META «истекает» tag

Итак, используя Pagespeed в FF, я смог найти некоторые области о том, как уменьшить мою страницу время загрузки.

В одном из разделов упоминается использование тега META "expires", и в нем перечислены все мои файлы CSS и JS, а также файлы IMG.

Теперь, если я просто добавлю этот тег в домашнюю страницу index.asp моего сайта, скажем, 1 год. Применяется ли это ко всем элементам, загружаемым с домашней страницы?

Google рекомендует использовать " {c: 3, d: 4} И хотите получить {a: 1, b: 2, c: 3, d: 4} Насколько я знаю, вам нужно выполнить итерацию ...

Объект Javascript не соответствует у меня нет родной операции слияния. Если у вас есть два объекта, скажем

{a:1, b:2}
{c:3, d:4}

и вы хотите получить

{a:1, b:2, c:3, d:4}

Насколько я знаю, вам нужно перебирать объекты. То есть вы выбираете стратегию слияния слева или слияния справа, а затем делаете что-то вроде (упрощенно)

for (key in object2) {
  object1[key] = object2[key];
}

Это нормально. Однако в Javascript есть функция вызова и прототипа . Например, преобразование аргументов в массив может быть выполнено с помощью

Array.prototype.slice.call (arguments)

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

Вопрос

Есть ли уловка для использования этого прототипа / шаблона вызова, возможно, в функциях обхода атрибута или узла модели DOM, или, возможно, в некоторых общих Строковые функции для слияния собственных объектов?

Код будет выглядеть примерно так:

var merged = somethingrandom.obscuremethod.call (object1, object2)

И в результате вы получите собственное слияние без обхода.

A возможное, неоптимальное решение

Если бы вы могли использовать свойство конструктора объекта , а затем заставить один объект иметь конструктор другого объекта, а затем запустить новый над составным объектом, вы можете получить слияние бесплатно. Но я не У меня есть четкое представление обо всех возможностях конструктора в javascript для выполнения этого вызова.

Лемма

Тот же вопрос верен для массивов . Обычная проблема - взять, скажем, 7 массивов чисел, а затем попытаться найти пересечение этих массивов. То есть, какие числа существуют во всех 7 массивах.

Вы могли бы объединить их вместе, затем выполнить сортировку, а затем, конечно же, выполнить обход. Но было бы неплохо, если бы где-то спрятано общее пересечение, к которому мы можем принудительно заставить массив делать нативно.

Есть какие-нибудь мысли?

редактировать:

На полпути

Для проблемы с массивом, вы можете сделать следующее:

array.concat (a, b, c) .sort (). join (':'), а затем использовать несколько хитрых RegExp захвата и повторения шаблонов для обхода . Реализации RegExp, если вы не знаете, работают на очень простой виртуальной машине на основе стека. Когда вы инициализируете свое регулярное выражение, это действительно программа, которая компилируется (RegExp.compile - устаревший метод JS). Затем туземец невероятно быстро пробегает по струне. Возможно, вы могли бы использовать это для определения пороговых значений членства и повышения производительности ...

Но это еще не все.

47
задан TylerH 7 September 2017 в 16:00
поделиться