Есть ли какое-то конкретное преимущество/недостаток в потреблении памяти JavaScript между использованием location.href = url
в противоположность location.assign(url)
?
Я предполагаю, что задаюсь вопросом, требуется ли больше памяти для доступа к методу в противоположность установке свойства.
Я знаю, что это старо, но я наткнулся на это, когда я искал способ проверить, что мои модульные тесты перенаправляли к корректному URL.
я пошел бы с window.location.assign()
, если Вы более обеспокоены тестированием. Используя функцию позволяет, Вы для насмешки сказали, что функция и проверяет входные параметры URL.
Так, с помощью шутки:
window.location.assign = jest.fn();
myUrlUpdateFunction();
expect(window.location.assign).toBeCalledWith('http://my.url');
// Clean up :)
window.location.assign.mockRestore();
там какое-либо конкретное преимущество/недостаток в потреблении памяти JavaScript между использованием location.href = URL в противоположность location.assign (URL)?
существует точно нулевое различие.
причина этого проста. Каждый раз, когда Ваш браузер загружает новую страницу, он запускает свежий новый JavaScript 'VM' со сценариев для той страницы, работающей в этом VM. При выполнении любого из операторов в вопросе Вы даете браузеру команду загружать новую страницу, что означает уничтожать текущий VM (и освобождать любую память, связанную с ним) и загружать абсолютно новый VM для новой страницы.
Сохраняют для любых странных ошибок браузера, результирующий эффект всегда является тем же. Ваши сценарии работают в совершенно новом VM с тем же самым потреблением памяти.
, Если Вы работаете с объектом местоположения в браузере и Вы хотите смочь выполнить этот код Узла JS (например, для тестирования или для изометрического кода), можно использовать ulocation
, универсальная/изометрическая реализация объекта Местоположения. Полное раскрытие: Я - автор того пакета.