Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywołanie strony w tle.
bww
post 3.06.2012, 21:28:41
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

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


Witam,

proszę o pomoc. Jakiej funkcji mogę użyć zamiast location.href, aby strona test.php z parametrem Result (jak poniżej) została wywołana w tle?

Kod
<script language="JavaScript">
var Result = 55;
location.href="test.php?Result=" + Result;
</script>


Dodatkowo, czy jest możliwość, aby nie czekać na odpowiedź? Przykładowo strona test.php zawiera
  1. instrukcje;
  2. sleep(10);
  3. instrukcje;

Generalnie chodzi mi o to, żeby użytkownik nie czuł, że w tle wywoływana jest jakaś inna strona.
Go to the top of the page
+Quote Post
kamil4u
post 3.06.2012, 22:37:26
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


A po co Ci takie coś? Pytam, bo na razie nie wiem dokładnie o co chodzi i w różnych przypadkach możliwe są różne rozwiązania( lub raczej ich brak ). Masz dostęp do strony( czy możesz ją edytować ): test.php ?


--------------------
Go to the top of the page
+Quote Post
Sephirus
post 4.06.2012, 07:40:37
Post #3





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Sposobów jest masa ale tak jak przedmówca napisał - do czego Ci to?

Możesz:
1. użyć AJAX
2. użyć coś na styl JSONP
3. użyć IFRAME
4. użyć obrazek
5. .... można wymieniać w nieskończoność... smile.gif

Najprościej chyba poprzez IFRAME

  1. <iframe id="strona_w_tle" style="display:none"></iframe>
  2.  
  3. <script type="text/javascript">
  4. document.getElementById('strona_w_tle').src = 'test.php?result=' + Result;


itd...

Ten post edytował Sephirus 4.06.2012, 07:41:05


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
bww
post 4.06.2012, 08:21:10
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

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


Generalnie efekt ma być podobny do statystyk tzn. ze strony A, gdzie będzie JS mają być wysyłane odpowiednie dane (w moim przykładzie jest to zmienna Result) do strony test.php, która znajduje się na innym serwerze. Zakładmy, że strona A może nie obsługiwać PHP, nie chcemy w żadnen sposób ingerować w jej treść i wygląd (chodzi o to co widzi użytkownik końcowy). Test.php + wszystko co jest na tym serwerze mogę w pełni edytować.

IFRAME chciałem użyć dopiero w znaczniku <noscript></noscript>. Twój przykład wydaje się być tym co chcę osiągnąć, ale przy ramkach chyba nie da się uniknąć oczekiwania na odpowiedź. Chyba, że przy innych opcjach też...

Ten post edytował bww 4.06.2012, 08:32:03
Go to the top of the page
+Quote Post
Sephirus
post 4.06.2012, 08:28:00
Post #5





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Jeśli przesyłasz mało danych do wystarczy użyć coś w rodzaju JSONP:

Na stronie którą chcesz śledzić poprzez JS musisz wykonać skrypt typu:

[JAVASCRIPT] pobierz, plaintext
  1. // po załadowaniu:
  2. var s = document.createElement('script');
  3. s.type = 'text/javascript';
  4. document.getElementsByTagName('head')[0].appendChild(s);
  5.  
  6.  
  7. // później przy każdym wysyłaniu danych do strony test.php:
  8.  
  9. s.src = 'http://twoja-domena.pl/test.php?result='+Result+'&r='+Math.random();
[JAVASCRIPT] pobierz, plaintext


W ten sposób odwołasz się niby do skryptu JS przesyłając dane GETEM do konkretnego skryptu (test.php).

Ten skrypt JS może dodatkowo odpowiadać na żądania w ten sposób:

[JAVASCRIPT] pobierz, plaintext
  1. twoja_funkcja();
[JAVASCRIPT] pobierz, plaintext


gdzie twoja_funkcja to funkcja istniejąca po stronie strony A. Chodzi o to byś po stronie strony A wiedział, że dane zostały przyjęte. smile.gif

Pomyśl nad tym wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
bww
post 4.06.2012, 11:11:30
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 3
Dołączył: 14.02.2012

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


W sumie strona A nie potrzebuje widzieć, czy test.php odebrał dane.
Dzięki za pomoc!
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 Wersja Lo-Fi Aktualny czas: 7.07.2025 - 22:27