![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Próbuje zrobić na swojej stronce listę firm opartych na google maps. Co około 2 sekundy strona z mapkami google ma się przeładowywać i nakładać nowe punktu naniesione przez użytkowników mojej strony. Widziałem takie rozwiązanie na pewnej stronie i tam wszystko ładnie się w locie przeładowywało (niewidocznie dla użytkownika). Zrobiłem coś takiego: http://panoramaofert.pl/maps.php (maps.php i maps2.php) Zrobiłem iframe który zczytuje plik maps2.php. Jak widać wygląda to nie najlepiej - widać przeładowania... :/// Wiecie może jak to zrobić żeby nie były aż tak widoczne?? Z góry dzięki za pomoc, Pozdrawiam Northwest |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 4 Dołączył: 5.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi się, że źle do tego podchodzisz. Nie pamiętam teraz dokładnie dokumentacji tego apletu google maps, ale tam chyba można dodawać dynamicznie te znaczniki (punkty) przez JS. Moje rozwiązanie wyglądało by tak, że baza punktów leży gdzieś sobie w MySQLu, a dane te są wyciągane przez AJAXa i dynamicznie dodawane.
Ogólnie odświeżanie co 2s to słaby pomysł... Przy kilkudziesięciu użytkownikach naraz serwer Ci strasznie zamuli... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
a masz może jakiś przykład tego??(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
a jaki Ty byś dał czas odświeżania?? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 4 Dołączył: 5.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie mam niestety przykładu, może jak będę miał chwilę wolnego to spróbuję coś takiego napisać na szybko (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Czas odświeżania - myślę, że nie częściej niż co 30s. Wszystko zależy od ilości użytkowników i mocy serwera (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chciałeś zrobić co 2s. Załóżmy, że w tym samym momencie będzie 20 użytkowników oglądających mapę. To nam daje 10 zapytań do serwera na sekundę. Nie znam się co prawda dobrze na specyfice serwerów www, ale wydaje mi się, że to sporo. Postaw na swoim komputerze Apache'a i odświeżaj stronę 10x na sekundę (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ogólnie całość można jeszcze trochę zoptymalizować zapisując czas ostatniej zmiany bazy punktów i każdego punktu z osobna. Wtedy nie wysyłamy przy każdym odświeżeniu pełnej listy punktów tylko ewentualnie punkty, które zostały dodane od ostatniego odświeżenia, a jeśli czas ostatniej zmiany bazy jest starszy niż aktualny to w ogóle nic nie przesyłamy. Trochę to zakręcone, ale dość logiczne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Noo jak byś mi przygotował taki przykład to byłbym baaaaardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
W sumie chyba masz rację z tymi zapytaniami... może się zamulić serwer... z tymi czasami co mówisz to troszkę zamotane i chyba nie będzie potrzebne;) ps. da się to zrobić tak że nie będzie widać tego efektu "przeładowania"??(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 4 Dołączył: 5.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat ps. da się to zrobić tak że nie będzie widać tego efektu "przeładowania"??smile.gif Naturalnie, wtedy mapa jako taka nie będzie w ogóle przeładowywana, będą jedynie do niej dodawane nowe punkty. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
ooo to super (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
Jakbyś mi przygotował taki przykład to byłbym Ci naprawdę baaaardzo wdzięczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 21 Pomógł: 4 Dołączył: 5.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok, coś tam napisałem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Więc tak: http://shells.pl/marszall/google_maps/index.php - Główna strona z mapą, czyli to co ma się odświeżać. http://shells.pl/marszall/google_maps/maps.js - Skrypt odpowiedzialny za to całe odświeżanie i mapę, jak widać w funkcji loadPointData() dane ładowane są z pliku points.php. http://shells.pl/marszall/google_maps/points.php - Skrypt php, który wyciąga z bazy mysql informacje o punktach (długość, szerokość i opis) i wypisuje je w odpowiedni sposób (JSON) - chyba dość zrozumiałe. http://shells.pl/marszall/google_maps/dodaj.php - Tutaj dodajemy punkty, w pole szukaj możemy wpisać miasto, ulicę, cokolwiek i kliknąć szukaj - jeśli google znajdzie lokalizację to współrzędne zostaną wpisane do pól poniżej. Klikamy dodaj i php dodaje te dane do bazy mysql. Oczywiście możemy wpisać dane ręcznie. Jeśli chcesz zobaczyć jak to działa to otwórz index.php i dodaj.php w osobnych okienkach przeglądarki, dodaj jakiś punkt i po kilku sekundach powinien się pojawić na mapie w index.php (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie chciało mi się bawić w sprawdzanie dat dodania itd, więc jak tylko baza się zmieni to wszystkie punkty z mapy są usuwane i dodawane na nowo. Trochę to widać, ale można by to poprawić tak jak mówiłem - wysyłać tylko listę punktów które zostały dodane/zmienione. Chociaż z tym byłoby trochę zabawy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
super, dzięki WIELKIE (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 23:57 |