Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX]Slajdy w Safari, "Miganie" obrazków przesłanych metodą AJAX
MalKavar
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 3.05.2015

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. function getData(plik, div){
  2. $.ajax({
  3. type : "POST",
  4. url : plik,
  5. cache: true,
  6. success: function(ret) {
  7. document.getElementById(div).innerHTML = ret;
  8. },
  9. error: function(jqXHR, errorText, errorThrown) {
  10.  
  11. }
  12. });
  13. }
[JAVASCRIPT] pobierz, plaintext


Więc korzystam z takiej funkcji. Wszystko ok, działa dobrze - za wyjątkiem Safari, która podczas przesyłania droga ajax znacznika <img> robi efekt "migania". W założeniu mojego projektu aktualizuję obrazek co 2 sekundy. Miganie staje się widoczne, kiedy obrazek pozostaje ten sam. Czy to jakaś wada "fabryczna" Safari, czy jedynie jakiś błąd w skrypcie/funkcji?
Dodam, że testowałem na Firefox i Chrome, gdzie działa bezproblemowo.
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A dlaczego pobierasz kod obrazka ajaxem, a nie tylko źródło?
I dlaczego w ogóle robisz to ajaxem (pula zdjęć jest zmienna i zależna od czegoś)?


--------------------
Go to the top of the page
+Quote Post
MalKavar
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 3.05.2015

Ostrzeżenie: (0%)
-----


Więc tak - pobieram kod obrazka razem ze znacznikiem, ponieważ liczba owych jest zależna od "postępu". Z tego samego powodu ajax - czysty php by zamęczył użytkownika.
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Ale czy to musi się odbywać w tle, bez przeładowania strony? Nie można tych obrazków pobrać raz przy załadowaniu strony i zmieniać cyklicznie poprzez js?

W jaki sposób wywołujesz funkcję getData?


--------------------
Go to the top of the page
+Quote Post
MalKavar
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 3.05.2015

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. getData('iplik.php','diVId');
[JAVASCRIPT] pobierz, plaintext


Wywołanie w ten sposób.
A co do pobierania na początku - Teraz by mogło być ok, ale w przyszłości by mogło dojść do nawet tysiąca obrazków, a wtedy pobranie ich wszystkich było by długotrwałe + zapewne w ciągu godziny by zostało użytych do 30. Więc to byłoby marnotrawienie pamięci operacyjnej i megabajtów. I myślę, że problem by pozostał. W sensie tych "slajdów"

Ten post edytował MalKavar 19.11.2016, 20:27:53
Go to the top of the page
+Quote Post
trueblue
post
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Wywołujesz tą funkcję cyklicznie? Jak?
Jest jakiś preloader obrazków?
Po co podmieniasz cały kod obrazka, zamiast wczytywać i zmieniać tylko atrybut src?


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 14:43