За последние 24 часа нас посетили 18305 программистов и 1600 роботов. Сейчас ищут 894 программиста ...

Непонятки с JavaScript

Тема в разделе "JavaScript и AJAX", создана пользователем promofile, 22 сен 2011.

  1. promofile

    promofile Активный пользователь

    С нами с:
    12 сен 2011
    Сообщения:
    10
    Симпатии:
    0
    Есть страничка на нем вставлен внешный JavaScript
    Код (Text):
    1. <script type='text/javascript' src='/counter.php'></script>
    . В скрипте /counter.php содержиться код редиректа
    Код (Text):
    1. window.location.replace('http://google.com/');
    Так вот, на страницу пускаем траффик, например 100 уников, а на google.com редиректит примерно только 50, тогда как если код редиректа
    Код (Text):
    1. window.location.replace
    разместить напрямую на странице то редиректит все 99.
    В чем отличие, не могу понять, ведь в обоих случиях JavaScript выполняеться и результат должен быть один и то же.
    Или не так?
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Должно быть, внешний скрипт браузер кэширует и/или кэшируется перенаправление.
     
  3. promofile

    promofile Активный пользователь

    С нами с:
    12 сен 2011
    Сообщения:
    10
    Симпатии:
    0
    Не совсем понятен овет, причем тут кеширование.
    Браузер вряд ли кеширует его так как в код добовляеться

    Код (Text):
    1. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
    2. header ('Cache-Control: no-cache, must-revalidate');
    3. header ('Pragma: no-cache');
    4. header ('Last-Modified: ' . gmdate ('D, d M Y H:i:s') . 'GMT');
    А что плохого в том что он кешируеться, редирект то в любом случаи должен был сработать.
     
  4. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Очевидно, не в любом случае. Вопрос-то есть. :)

    Легко проверить, подставляй к /counter.php рындомные значения:
    /counter.php?любое-знаечение

    Если глюки пропадут. значит кэш.
     
  5. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    lexa
    Какая разница откуда придут строки
    Код (Text):
    1. window.location.replace('http://google.com/');
    из кэша или с сайта?

    Обрабатываться они должны в любом случае. Может AdBlock какой?
     
  6. promofile

    promofile Активный пользователь

    С нами с:
    12 сен 2011
    Сообщения:
    10
    Симпатии:
    0
    AdBlock у 50% уников, это вряд ли.
    Код проверял у себя на всех доступных браузерах, все работает как надо, а когда траффик сливаеш из вне то картина такая.