Как получить уникальный идентификатор для окна?

Я пытаюсь получить какой-то уникальный идентификатор для окна, методы ajax теперь правильно обрабатывают ответы 304 Not Modified путем вызова обработчика success () в соответствии со спецификацией W3C для XMLHTTPRequest. Это позволяет вашему приложению обрабатывать ...

Начиная с jQuery 1.5, методы ajax теперь правильно обрабатывают ответы 304 Not Modified путем вызова обработчика success () в соответствии со спецификацией W3C для XMLHTTPRequest. Это позволяет вашему приложению рассматривать запрос как успешный, даже если сервер на самом деле не вернул никаких данных (потому что у вас уже есть последние кэшированные данные).

Для обычного (некэшированного) запроса GET обработчиком успеха является вызывается со следующими аргументами:

  • data: {данные с сервера}
  • status: OK
  • jqXHR: методы ajax теперь правильно обрабатывают ответы 304 Not Modified путем вызова обработчика success () в соответствии со спецификацией W3C для XMLHTTPRequest. Это позволяет вашему приложению рассматривать запрос как успешный, даже если сервер на самом деле не вернул никаких данных (потому что у вас уже есть последние кэшированные данные).

    Для обычного (некэшированного) запроса GET обработчиком успеха является вызывается со следующими аргументами:

    • data: {данные с сервера}
    • status: OK
    • jqXHR: методы ajax теперь правильно обрабатывают ответы 304 Not Modified путем вызова обработчика success () в соответствии со спецификацией W3C для XMLHTTPRequest. Это позволяет вашему приложению рассматривать запрос как успешный, даже если сервер на самом деле не вернул никаких данных (потому что у вас уже есть последние кэшированные данные).

      Для обычного (некэшированного) запроса GET обработчиком успеха является вызывается со следующими аргументами:

      • data: {данные с сервера}
      • status: OK
      • jqXHR:
        • status: 200
        • statusText: OK
        • responseText: {данные с сервера}

      Для кэшированного запроса GET вызывается обработчик успеха со следующими аргументами:

      • data: undefined
      • статус: не изменен
      • jqXHR:
        • status: 304
        • statusText: notmodified
        • responseText: {данные из кеша}

      (по крайней мере, так они возвращаются в IOS 4.2 для веб-приложения, которое использует приложение кэширование через файл манифеста. Я предполагаю, что это согласуется с общим кешированием браузера на большинстве платформ / браузеров).

      Вы можете видеть, что аргумент «данные» заполняется только в том случае, если запрос был 200 OK; где jqXHR.responseText всегда заполняется данными, независимо от того, были ли эти данные получены с сервера (200 OK) или из кеша (304 Not Modified).

      Учитывая, что в большинстве запросов GET ваш обработчик успеха если вы захотите что-то сделать с данными, которые вы получили, независимо от того, откуда они взялись, для вашего кода успеха было бы лучше всегда использовать jqXHR.responseText, а не делать что-то вроде этого:

      if ("notmodified" === status) {
        // do something with jqXHR.responseText
      } else {
        // do something with data
      }
      

      Или когда-нибудь будет случай, когда jqXHR.responseText не будет заполнен в обработчике успеха, но аргумент данных будет ?

      Я должен пройти через кодовую базу и изменить все обработчики успеха (раньше я был на jQuery 1.4.2, который всегда возвращал данные, даже из кеша); так что я просто хочу убедиться, что я правильно с этим справляюсь. (Не хочу дойти до конца и потом понять, что я должен был сделать это по-другому).

18
задан Scott 7 March 2011 в 02:24
поделиться