- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Коллеги, помогите решить вот какую задачу. Есть каталог, очень тяжелый и поэтому при первом запуске надо загрузить большой объем информации, занимает это 2-3 минуты, иногда и более. Софт будет переделан в отдаленном будущем, но пока нужен костыль. Необходимо сообщать пользователю, что идет загрузка данных, а не просто сайт завис.
Но как это сделать, не понимаю. Страница которая нужна пользователю недоступна все эти минуты, т.е. туда ставить какой-то код с сообщением бесполезно.
Подскажите, в какую сторону копать?
Самое простое, просто предупредить посетителя при переходе не данную страницу, что она большого размера и чтоб он набрался терпения, возможно на несколько минут, пока она загрузится.
Один из вариантов (если используется сервер Apache), создание странички с таким сообщением и реврайт в .htaccess на эту страничку, если запрошена основная страница с пустой QUERY_STRING (отдавать не основную, а страницу-предупреждение).
А уже не странице-предупреждении ссылка на основную страницу с добавленным параметром, типа "http://основная_страница?load=1", который не позволит сработать реврайту в .htaccess и по этой ссылке загрузится основной контент.
У этого способа можно найти немало минусов, но как быстро подставляемый костыль вполне может подойти.
просто предупредить посетителя при переходе не данную страницу
Переход может быть по закладке, из поисковика и т.п.
если используется сервер Apache
Увы, IIS.
Нужно делать промежуточную страницу, мне так кажется. Вопрос как эта страница может определить, доступна ли конечная и собственно чтобы это проверялось с каким-то интервалом и когда страница доступна, на нее шел редирект.
вы бы пациента показали, что ли...
либо если это по какой-то причине невозможно, "на пальцах" пару слов про вывод индексной страницы
я к чему веду - возможно получится обойтись без всяких редиректов, например бекграунд для основного дива в виде анимированной гиф-ки "loading..." - чем не костыль?
зы
а вообще, генерация 2-3 минуты это нонсенс... тут не костыли нужны а кастрация разработчика
либо если это по какой-то причине невозможно, "на пальцах" пару слов про вывод индексной страницы
Даже и не знаю как объяснить. Пока программа не загрузится, страница не доступна. Как разделить загрузку страницы и загрузку программы, чтобы страница вообще грузилась, не знаю. Опять же, как проверять что программа готова?
а вообще, генерация 2-3 минуты это нонсенс... тут не костыли нужны а кастрация разработчика
Вроде бы и согласен, а с другой стороны. Данных на 12 Гб, плюс видимо особенность работы IIS. Не знаю как можно грузить данные быстрее. Возможно когда произойдет переход на 64-х битную версию софта, это как-то изменит скорость загрузки данных. Впрочем это будет уже не важно. Сейчас софту просто ОЗУ не хватает, он упирается в предел который возможен для 32-х битного софта и все. Возможно память течет. Когда будет новая версия, загрузили один раз и пусть годами висит загруженный процесс, тут уже будет мгновенный доступ для работы.
может просто дописать кэш? Делов вроде на пару минут если знать где что происходит в движке или в программе..
Переход может быть по закладке, из поисковика и т.п.
Это не важно откуда переход, во всех этих переходах в строке запроса нет нужного параметра, значит можно отдавать страницу-предупреждение.
Увы, IIS.
Не приходилось иметь дел, не знаю что это.
Но наверно можно на самой странице как-то проверить наличие параметра в строке запроса и отдать либо основной контент, либо предупреждение.
Например, если возможна вставка PHP-блока в начале основной страницы (повторюсь, не знаком с IIS), можно сделать эту проверку и отдачу предупреждения на PHP (или другом доступном серверном языке).
Пока программа не загрузится, страница не доступна. Как разделить загрузку страницы и загрузку программы, чтобы страница вообще грузилась, не знаю.
ммм... не понял, у вас индекс генерируется десктопным софтом или как? что значит "программа"?
если так - то имхо не совсем правильно (разве что софтина суперспецифическая и ее функционал ввиде веб-приложения не повторить)
тем не менее "разделить" не сложно - пускай софтина с указанной периодичностью выгружает данные в любом удобном формате - XML, CSV, да хоть напрямую в мускул...
а сайт пусть берет эти данные в тот момент когда пользователь запрашивает страницу - поскольку они будут подготовлены, 2-3 минут уже не будет
это и есть грубый пример кеширования
Вроде бы и согласен, а с другой стороны. Данных на 12 Гб, плюс видимо особенность работы IIS.
да хоть на 128 гб... вы что, отдаете все данные сразу?!?! в этом случае повторюсь - сайт спасет исключительно кастрация старого разработчика... никакую лапшу про 32/64 бита не слушайте, иначе когда данных будет 24 гб он начнет петь про еще сколько-то там бит...
ммм... не понял, у вас индекс генерируется десктопным софтом или как? что значит "программа"?
Есть база данных в нестандартном формате. Т.е. это не MySQL или что-то из стандартного. Есть софт который делает поиск по этой базе. Данные хранящиеся в базе очень специфичны. Как все это работает именно со стороны софта не скажу, скажу лишь что dll весит 1,6 Гб, собственно видимо она и пожирает память.
да хоть на 128 гб... вы что, отдаете все данные сразу?!?! в этом случае повторюсь - сайт спасет исключительно кастрация старого разработчика... никакую лапшу про 32/64 бита не слушайте, иначе когда данных будет 24 гб он начнет петь про еще сколько-то там бит
Вы не знаете специфики и поэтому несколько горячитесь. Очень редкая задача, во всем мире существует по сути 2-3 решения, с ценой за десятки килоевро. Причем это фактически ежегодная плата, а не разовая. Тут более бюджетный вариант, но вот с такими прибамбахами. Да, там есть некоторые идеологически не корректный моменты, советовался со знакомым специалистом, как раз по большим базам данных. Но никто не возьмется за исправление проблем в текущем софте, а с нуля написать очень мало кто может, для этого надо быть очень хорошим химиком.
Поэтому что имеем, то нас и имеет. :)
я вовсе не горячусь ))
и если стоит задача просто удержать посетителя в течение этих самых трех минут - отвечал выше, первое что приходит в голову это преаплодер ввиде дива с гифкой-бекграундом и надписью "подождите"
а специфики сайта конечно же не знаю, именно поэтому спросил урл - очень сложно что-то подсказать "наугад"
Есть база данных в нестандартном формате. Т.е. это не MySQL или что-то из стандартного. Есть софт который делает поиск по этой базе. Данные хранящиеся в базе очень специфичны. Как все это работает именно со стороны софта не скажу, скажу лишь что dll весит 1,6 Гб, собственно видимо она и пожирает память.
Вы не знаете специфики и поэтому несколько горячитесь. Очень редкая задача, во всем мире существует по сути 2-3 решения, с ценой за десятки килоевро. Причем это фактически ежегодная плата, а не разовая. Тут более бюджетный вариант, но вот с такими прибамбахами. Да, там есть некоторые идеологически не корректный моменты, советовался со знакомым специалистом, как раз по большим базам данных. Но никто не возьмется за исправление проблем в текущем софте, а с нуля написать очень мало кто может, для этого надо быть очень хорошим химиком.
Поэтому что имеем, то нас и имеет. :)
Насколько велика сама БД? Насколько часто повторяются запросы? Насколко часто меняются данные в БД? Возможно кеширование ответов сильно спасёт ситуацию?
Второй вариант, делать загрузку ответа ajax запросом после загрузки страницы, и показывать анимацию в стели "ваш запрос обрабатывается - ждите".