Цитата:
|
Тебе надо еще? Тебе надо больше? Отлично, как поднимится эта тема поблагодарю еще раз).
|
Ладно, прощаю
Лови новое дровишко: помимо сборки мусора в настоящих SPA бич - это фризы браузера при переходе по страницам, т.е. 2 абсолютно разные страницы, жмамагаем и понеслось:
1) очистка памяти старой страницы, удаление старого DOM (а у нас стена сообщений с модным "вечным" скроллом где пролистано 20 страниц)
2) инициализация новой страницы, инициализация виджетов, блоков и т.д.
Очень часто бывает, что эти 2 пункта фризят браузер более чем на 50мс (у меня было и по 500мс) и это реально выглядит как полное зависание вкладки. Решение: очистка мусора и инициализация делается порционно и параллельно, т.е. setTimeout в руки и поехали (также хорошо иметь АПИ для "прогретого" потока, т.е. иметь пул Worker-ов), только вот это всё должно делать на уровне фреймворка, а не писаться для каждого блока отдельно, т.е. делаться без разработчика. Как определять что чистить и рисовать первым? Ответ: то, что на экране (т.е. если скролл скрол на середине экрана, то идиотизм начинать сверху страницы). Как узнать что на экране, если ещё никакого CSS нет? Ответ: запоминать примерную геометрию всех блоков, кешировать в локальном хранилище и учитывать при последующих загрузках.
Т.к. мой фрейворк закрытый, то ты раз уж делаешь либу для SPA, то делай её честно
Как сделаешь дам новое задание, которое скорее всего заставит всё переписывать
По поводу поддержки браузеров: не будь глупцом, через пол года макс уже выйдет ИЕ12, а при условии что ты честно будешь писать либу, то до её использования пройдёт пол года минимум, так что забивай на все ИЕ кроме 11, ибо всё равно сегмент задач на которые претендует твоя либа таков, что он если и заработает в дрених браузерах, то будет нереально тормозить из-за дурацких полифилов. Юзай сеттеры, геттеры, новые структуры данных и не заморачивайся в общем.