Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Единый форум поддержки » Администрирование форума » аджакс-скрипты и проблемы с серверами


аджакс-скрипты и проблемы с серверами

Сообщений 1 страница 20 из 37

1

у меня очень сложный вопрос про аджакс-скрипты, типа подписчиков (про которые я тут недавно спрашивала) или Превью первой картинки топика

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

А когда очередь накапливается длинная и запросы не успевают обрабатываться - сервер сбрасывает вот это всё безобразие и начинает возвращать ошибку.
То ли серверы перестали справляться по какой-то причине, то ли специально сузили канал, чтобы не создавалось с одной страницы по 20-30 запросов одновременно...

Кароче, в итоге с приведенными в пример скриптами, только в 7 из 10 топиков на странице отображаются подписчики.
если стоят одновременно скрипты картинок и подписчиков = 3-4 топика отгружают картинку и только 3-4 топика отображают кол-во подписчиков.
если поставить на странице 20 и более топиков - тут конечно вообще анал-карнавал начинается.

есть какой-то метод побороть эту проблему и брать данные другим методом?

0

2

Нет, никаких изменений не было, всё должно моментально отрабатывать. Правда, во втором скрипте я бы добавил еще &nohead, он же грузит не api, а страницу форума, незачем ему получать еще и хидер с футером. А большое количество запросов в секунду ведет к 503 ошибке. Если запросов больше 10 в секунду, то возможны и задержки, сначала сервер пытается их немного раскидать, перекидывает некоторые на следующую секунду. Если и там превышение лимита, тогда уже 503. Нужно смотреть, почему много запросов. Известно, что скрипт уведомлений от @Alex_63 периодически начинает глючить и отправлять оптом запросы, это давняя проблема и он не писал нигде, что его исправил. Инструменты разработчика в браузере должны показать что не так.

+1

3

kernel

kernel написал(а):

во втором скрипте я бы добавил еще &nohead, он же грузит не api, а страницу форума, незачем ему получать еще и хидер с футером.

можно, плз, для глупеньких - куда и как в скрипте это добавить?

kernel написал(а):

Нужно смотреть, почему много запросов.

касательно самих запросов
вот, например, форум: https://sims3archive.mforum.info/viewforum.php?id=76
и мой: https://forumd.ru/viewforum.php?id=33&p=3

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

и еще странная проблема выявлена: https://forumd.ru/viewtopic.php?id=6147&p=3#p140684
если у пользователя есть вип-аккаунт, у него вообще картинки не отображаются.

еще пробовала ставить одновременно количество подписчиков + Управление подписками в списке топиков. вот результат:
http://oaotr.0pk.ru/search.php?action=show_recent
http://oaotr.0pk.ru/viewforum.php?id=10
количество подписок появляется максимум 8 штук. ссылки подписаться/отписаться срабатывают через раз в зависимости от будет к ним запрос быстрее отработан, чем сервер скинет очередь.

надо бы разобраться как писать скрипты такого рода, чтоб сервер не выплёвывал запросы.

+1

4

Герда написал(а):

вот, например, форум: https://sims3archive.mforum.info/viewforum.php?id=76

Ну да, идёт куча одномоментных запросов. Либо задержку можно ставить, либо кэшировать результат, либо делать через API, там же сейчас есть post.get.
https://forumupload.ru/uploads/0000/14/1c/2/852288.png
Если говорить насчет скрипта, который через API запрашивает пользователей - ну это просто опасно, сразу информацию по 1000 пользователей. Это и на сервер большая нагрузка и на браузер пользователя. На сервере ограничение на количество запросов уже почти год такое идёт. Очень большую долю в любой ошибке 502, что было, составляют запросы этих скриптов.

Герда написал(а):

можно, плз, для глупеньких - куда и как в скрипте это добавить?

По идее так:

Код:
var hr = $(prevTheme[c]).find('.tcl .tclcon a').attr('href') + '&nohead';
Герда написал(а):

и еще странная проблема выявлена: https://forumd.ru/viewtopic.php?id=6147&p=3#p140684
если у пользователя есть вип-аккаунт, у него вообще картинки не отображаются.

Идей нет, как VIP может влиять, по идее он здесь совершенно индеферентен.

+2

5

kernel написал(а):

Идей нет, как VIP может влиять, по идее он здесь совершенно индеферентен.

Но оно к сожалению так...
С VIP
https://forumupload.ru/uploads/0000/14/1c/32894/t183565.png
Без VIP
https://forumupload.ru/uploads/0000/14/1c/32894/t152472.png
Даже при отключении вот этих плюшек, не отображаются.
Антицензор (Отключить).
Режим скрытности (Отключить).
Показ VIP в профиле (Отключить).
Да и сам VIP никак не отключить (хотя бы временно)

Отредактировано ACT3255 (Ср, 7 Окт 2020 19:23:17)

0

6

kernel написал(а):

API запрашивает пользователей - ну это просто опасно, сразу информацию по 100000 пользователей. Это и на сервер большая нагрузка и на браузер пользователя.

гм. а что (какой скрипт) на том форуме (sims3archive) запрашивает юзеров?

еще вопрос на тему подписчиков здесь: http://oaotr.0pk.ru/viewforum.php?id=10
этот скрипт же выводит циферку через апи: https://forum.mybb.ru/api.php?method=boa … c_id=31044
он же не шерстит огромные списки и не отгружает мильён юзеров. он с 10ю запросами за раз будет справляться, если для них очередь сделать?

@ACT3255
может, дело всё же не в випе, а в каком-нить админком скрипте, который делает запросы.
у тебя на форуме нет чего-то такого, что могло бы отгружать какую-то информацию из топиков, о пользователях и т.д.?

+1

7

Герда
Мда, Вы правы, убрал все скрипты кроме одного (Вашего) картинки появились, буду вычислять, что за скрипт мешает.
@kernel
приношу извинения, за свое утверждение.
Добавлено спустя 4 минуты 21 секунду:
Ну и все же, почему админ не видит, а юзеры видят? Вот в чем вопрос...

Отредактировано ACT3255 (Ср, 7 Окт 2020 19:36:04)

0

8

ACT3255
у тебя подписки на странице списка тем стоят. это сразу -1 картинка из 10.
выявишь еще что-то - отпишись тут плз.

надо на все такие скрипты сделать что-то, чтоб они работали по принципу "в очередь, сукины дети!" :D
делали по 1 запросу и после отгрузки 1й картинки принимались за следующую.

+1

9

Герда написал(а):

еще вопрос на тему подписчиков здесь: http://oaotr.0pk.ru/viewforum.php?id=10

Там используется запрос

Код:
http://oaotr.0pk.ru/api.php?method=board.getSubscriptions&topic_id=151

на каждый топик. Почему бы не использовать

Код:
http://oaotr.0pk.ru/api.php?method=board.getSubscriptions&topic_id=151,150,...

- один запрос для всех топиков?

Герда написал(а):

гм. а что (какой скрипт) на том форуме (sims3archive) запрашивает юзеров?

Похоже, https://forumstatic.ru/files/0019/d2/86/79780.js, правда с цифрой ошибся, там 10 запросов со 100 пользователями в каждом, т.е. всего 1000 пользователей.

+1

10

Герда написал(а):

выявишь еще что-то - отпишись тут плз.

Выловил

Код:
<!-- Псевдо-удаление сообщений V.2 © Alex_63 - Ч.2 в HTML низ -->
<script type="text/javascript" src="https://forumstatic.ru/files/0016/0b/c8/96496.js"></script>

0

11

kernel написал(а):

- один запрос для всех топиков?

гггггггггениально!
спасибо!
:cool:
я не знала, что так можно  :blush:

и такую же штуку в картинках наверное провернем.  :cool:

ACT3255 написал(а):

Выловил

надеюсь, не придется его трогать.
надо просто другие скрипты выстроить в один запрос.

Отредактировано Герда (Ср, 7 Окт 2020 20:13:43)

+1

12

Герда написал(а):

надеюсь, не придется его трогать.
надо просто другие скрипты выстроить в один запрос.

Пока убрал )))
Будем ждать обновлений.

0

13

kernel
а если мы хотим вылавливать именно картинки, какой метод надо юзать?
мб есть что-то для post.get по аналогии с board.getSubscriptions?

0

14

Герда написал(а):

kernel
а если мы хотим вылавливать именно картинки, какой метод надо юзать?
мб есть что-то для post.get по аналогии с board.getSubscriptions?

К сожалению, в данном случае уже вступают в игру ограничения базы данных. В топиках нет никакой индикации того, какой пост там первый. В постах нет индикации, что этот пост первый. Соответственно, достаточно сложно одним запросом получить такой список (единственный способ сейчас - это сортировать посты по дате и выводить только первый). Даже если такой запрос сочинить - это будет куча условий с поиском по постам для каждого топика и созданием временной таблицы. По нагрузке выигрыш относительно отдельных запросов для каждого топика вряд ли будет. Вероятно, в будущем я всё-таки свяжу первый пост и топик, но не в ближайшие дни.

С точки зрения скрипта можно грузить картинки по мере попадания поста в поле видимости и грузить последовательно с кэшированием результата.

0

15

kernel написал(а):

В топиках нет никакой индикации того, какой пост там первый. В постах нет индикации, что этот пост первый.

есть. у первого поста есть собственный класс topicpost

и если даже пост закреплен на других страницах - этот класс остается: Новые селекторы

значит какая-то индикация есть... или каким образом движок выдает этот класс и отличает .firstpost от .topicpost?

Отредактировано Герда (Ср, 7 Окт 2020 20:39:29)

0

16

Герда написал(а):

topicpost

Нету. Класс добавляется на стороне php по счётчику постов.

+1

17

Герда написал(а):

касательно самих запросов
вот, например, форум: https://sims3archive.mforum.info/viewforum.php?id=76

kernel написал(а):

Похоже, https://forumstatic.ru/files/0019/d2/86/79780.js, правда с цифрой ошибся, там 10 запросов со 100 пользователями в каждом, т.е. всего 1000 пользователей.

Это кстати мой старенький скрипт календаря событий стоит, только я писал, что устанавливать его надо в описание форума, чтоб он срабатывал только на главной странице, а не в html-вех или низ.
Надо бы его переписать, чтоб вообще по клику на иконку календаря срабатывал, а не при каждом заходе на главную. А столько много запросов приходится делать чтоб выудить дни рождений максимально-возможного количества зарегистрированных пользователей, ибо у нас в api нет сортировки по birth_date
При чём не сортировки конкретно по дате или возрасту, а просто, что при sort_by=birth_date выдавало всех, у кого поле дня рождения не пустое. Отсортировать полученный результат по дате я и сам могу. Но Макс (бывший админ), сказал что такая сортировка пользователей в api невозможна

0

18

Romych написал(а):

При чём не сортировки конкретно по дате или возрасту, а просто, что при sort_by=birth_date выдавало всех, у кого поле дня рождения не пустое. Отсортировать полученный результат по дате я и сам могу. Но Макс (бывший админ), сказал что такая сортировка пользователей в api невозможна

Не вижу ничего невозможного. По идее, добавил на этом форуме.

+2

19

kernel написал(а):

Не вижу ничего невозможного. По идее, добавил на этом форуме.

Круто!  :cool:  жаль только что не показывает дату у тех, у кого дата неполная
Например, как у  Алекса или тебя Иван. Я знаю что у Алекса в профиле стоит день и месяц дня рождения, год не стоит. И все мы его поздравляем с ДР, но возраст не знаем, с Деффом такая же фигня, но суть не в этом. Суть в том, что в ответе строка birth_date без указания года пустая birth_date":"", что очень жаль. Видимо про это говорил Макс, что невозможно.
Видимо там какая-то регулярка стоит на распознавание полной даты

https://forum.mybb.ru/api.php?method=users.orderedList&sort_by=birth_date&limit=100&fields=user_id,username,age,birth_date

0

20

Romych написал(а):

жаль только что не показывает дату у тех, у кого дата неполная

Сделал показ.

Код:
https://forum.mybb.ru/api.php?method=users.orderedList&sort_by=birthdate&limit=100&fields=user_id,username,age,birth_date

sort_by=birthdate, не sort_by=birth_date. В базе именно birthdate.

+1


Вы здесь » Единый форум поддержки » Администрирование форума » аджакс-скрипты и проблемы с серверами