Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX]Funkcja .load a wiele kart
Forum PHP.pl > Forum > Przedszkole
Xeer
Witam.

Mam pewien problem z funkcją
Kod
$().load


Mianowicie, odświeżam funkcję poprzez setInterval co kilka sekund - wszystko działa jak należy, ale jest problem gdy użytkownik odpali kilkanaście kart mojej strony jednocześnie.

Gdy np. użytkownik odpali jednocześnie 50 kart w przeglądarce to 50x co te kilka sekund wczytuje plik - jest to dość niekorzystne z wiadomych powodów i nie mam zielonego pojęcia jak ten problem rozwiązać.

Jest może jakiś sposób na TYLKO jedno wczytywanie pliku co określone czas jednocześnie we wszystkich kartach przeglądarki?

Ponieważ obecnie jak ktoś odpali nie wiadomo ile kart, to można powiedzieć, że dostaje się DDoS'a za Freeko przez samego siebie.

Pozdrawiam!
bostaf
Cytat(Xeer @ 19.06.2017, 03:15:44 ) *
Jest może jakiś sposób na TYLKO jedno wczytywanie pliku co określone czas jednocześnie we wszystkich kartach przeglądarki?

Każdy tab/okno to osobna instancja przeglądarki. Nie jestem pewien czy można sterować zachowaniem jednej instancji z poziomu innej.
I rozumiem, że obawiasz się jakiegoś złośliwego działania.

Jeśli te dane które pobierasz loadem są generowane dynamicznie przez php jakimiś zapytaniami do bazy danych, to wiadomo - po pierwsze musisz je tak zoptymalizować (i zapytania i strukturę danych) żeby nie położyły serwera.
A zabezpieczyć przed multi możesz dodając w tym skrypcie który generuje dane jakiś znacznik czasu i przed wywołaniem zapytań sprawdzać czy dany komputer nie pobrał ich już przed chwilą. Przed profesjonalnym DDoS tak się nie zabezpieczysz ale przed takim amatorskim tak. Znacznik czasu ma dokładność milisekundową, więc w zupełności wystarczy.
Oczywiście w ten sposób tylko jeden tab będzie aktualizowany, ale mi nic lepszego nie przychodzi do głowy.
leonpro778
Jeżeli problem jest tylko z kartami to ja bym zrobił to z użyciem cookies i jakimś timeoutem smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.