время загрузки страницы с JQuery

Для первого вопроса первой вещью, которую необходимо сделать, является вид список вторым полем с помощью itemgetter от модуля оператора:

x = [
 ['4', '21', '1', '14', '2008-10-24 15:42:58'], 
 ['3', '22', '4', '2somename', '2008-10-24 15:22:03'], 
 ['5', '21', '3', '19', '2008-10-24 15:45:45'], 
 ['6', '21', '1', '1somename', '2008-10-24 15:45:49'], 
 ['7', '22', '3', '2somename', '2008-10-24 15:45:51']
]

from operator import itemgetter

x.sort(key=itemgetter(1))

Тогда можно использовать функцию itertools' groupby:

from itertools import groupby
y = groupby(x, itemgetter(1))

Теперь y является итератором, содержащим кортежи (элемент, итератор объекта). Это более сбивает с толку для объяснения этих кортежей, чем это должно показать код:

for elt, items in groupby(x, itemgetter(1)):
    print(elt, items)
    for i in items:
        print(i)

, Который печатает:

21 
['4', '21', '1', '14', '2008-10-24 15:42:58']
['5', '21', '3', '19', '2008-10-24 15:45:45']
['6', '21', '1', '1somename', '2008-10-24 15:45:49']
22 
['3', '22', '4', '2somename', '2008-10-24 15:22:03']
['7', '22', '3', '2somename', '2008-10-24 15:45:51']

Для второй части, уже необходимо использовать понимания списка, как упомянуто здесь:

from pprint import pprint as pp
pp([y for y in x if y[3] == '2somename'])

, Который печатает:

[['3', '22', '4', '2somename', '2008-10-24 15:22:03'],
 ['7', '22', '3', '2somename', '2008-10-24 15:45:51']]

10
задан Omar Abid 31 July 2009 в 09:08
поделиться

5 ответов

Как уже упоминали другие, это не будет очень точным. Но это должно работать разумно.

В вашем , т. Е. Как можно раньше:

<script>
   var startTime = (new Date()).getTime();
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
   $(window).load(function () {
       var endTime = (new Date()).getTime();
       var millisecondsLoading = endTime - startTime;
       // Put millisecondsLoading in a hidden form field
       // or Ajax it back to the server or whatever.
   });
</script>

Ключ - это поведение, из документации jQuery :

При привязке к элементу окна событие срабатывает, когда пользовательский агент завершает загрузку всего содержимого в документ, включая окно, рамки, объекты и изображения.

21
ответ дан 3 December 2019 в 19:34
поделиться

Поскольку скрипты выполняются сразу после их анализа, я предлагаю вам поместить один тег скрипта прямо в заголовок, а затем скрипт для перехвата события загрузки страницы после того, как вы загрузили jQuery:

<html>
<head>
   <script>
      // Capture start time
   </script>
   ...
   <script src="jquery.js" />
   <script>
      $(window).load(function() {
         // Capture end time
      });
   </script>
...

Таким образом вы сможете уловить как можно больше времени загрузки страницы.

1
ответ дан 3 December 2019 в 19:34
поделиться

Если вы делаете это с целью оптимизации, я предлагаю вам использовать Yslow . Это расширение Firebug-Firefox. Он может показать вам время загрузки страницы и много другой полезной информации.

0
ответ дан 3 December 2019 в 19:34
поделиться

Вы не можете сделать это с помощью jQuery, так как $ (document) .ready (); срабатывает при загрузке страницы.

Это можно сделать с помощью подключаемого модуля YSlow Firebug для Firfox. Если вы хотите, чтобы это работало во всех браузерах, вам необходимо добавить серверный код, чтобы показать, сколько времени прошло, когда первый элемент был записан в нижний элемент.

Если это не то, что вам нужно, вы можете использовать такой инструмент, как Selenium , и написать тест, чтобы зафиксировать время от открытого до конца waitForPageToLoad ]. Selenium работает во всех браузерах

-2
ответ дан 3 December 2019 в 19:34
поделиться

Может, вам лучше использовать плагин для браузера? При вычислении с помощью JavaScript время загрузки страницы будет недооценено, поскольку оно не будет включать время загрузки фрагмента jQuery и не будет включать время между отправкой запроса браузером и ответом веб-сервера?

Там есть Плагин Load Time Analyzer для Firefox.

0
ответ дан 3 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: