Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Значение средних значений за день в дневной статистике #30

Closed
P-h-e-m-m-e-r opened this issue Oct 13, 2014 · 16 comments

Comments

@P-h-e-m-m-e-r
Copy link
Contributor

хотелось бы видеть среднюю за день (скорость, ошибки) непосредственно в статистике дня, вот так примерно:
http://img-fotki.yandex.ru/get/6831/208001216.22/0_e3726_fe629878_orig.png
если возможно, в той же строке, где нарисовал, там есть еще место (то есть без добавления новых строк в интерфейсе)
можно считать непосредственно как среднее арифметическое из таблицы, без дополнительных запросов. и пересчитывать при удалении результатов заездов.

@Fenex
Copy link
Collaborator

Fenex commented Oct 13, 2014

Fenex@d656b21
Под хромом работает прекрасно, с файрфоксом боролся - плюнул.

@Fenex
Copy link
Collaborator

Fenex commented Oct 13, 2014

Следующий код у меня в файрфоксе непонятно работает:

// ==UserScript==
// @name           testScript
// @namespace      test
// @version        1.0
// @grant          none
// @author         Fenex
// @include        http://klavogonki.ru/*
// @run-at         document-start
// ==/UserScript==

window.aaa = 12223;
setInterval(function() {
    console.log(window.aaa, window.angular, typeof window.angular);
}, 1000);

Выдаёт в консоли:

12223 Object {  } "object"
12223 undefined "undefined"
12223 Object {  } "object"
12223 undefined "undefined"
12223 Object {  } "object"
12223 undefined "undefined"
12223 Object {  } "object"
12223 undefined "undefined"
12223 Object {  } "object"
12223 undefined "undefined"

Ну бред же.

@Fenex
Copy link
Collaborator

Fenex commented Oct 13, 2014

Если выставлять run-at = document-end тоже какая-то хрень.

@ocrest
Copy link
Contributor

ocrest commented Oct 13, 2014

@Fenex, если перенести код, отвечающий за инжекцию скрипта, в обработчик window.onload — все работает и в FireFox

@P-h-e-m-m-e-r
Copy link
Contributor Author

да, еще же счетчик количества заездов за день там очень пригодится!

@ocrest
Copy link
Contributor

ocrest commented Oct 14, 2014

@P-h-e-m-m-e-r, в скрипте @Fenex это уже реализовано :)

https://github.com/voidmain02/KgScripts/blob/master/docs/StatisticsAvgResults.md

voidmain02 added a commit that referenced this issue Oct 14, 2014
(f) fixes for the StatisticsAvgResults. Closes #30
@Fenex
Copy link
Collaborator

Fenex commented Oct 14, 2014

Ах, я понял почему такое получается:

12223 Object {  } "object"
12223 undefined "undefined"
12223 Object {  } "object"
12223 undefined "undefined"

Разработчик greasemonkey @arantius разъяснил мне: код запускается во всех фреймах, существующих на странице. По-хорошему надо во всех юзерскриптах делать на старте проверку окружения, в котором скрипт запустился. Если это фрейм, то прекращать выполнение.

if (window.top != window.self)  //don't run on frames or iframes
    return;

@ocrest
Copy link
Contributor

ocrest commented Oct 15, 2014

@Fenex, интересная информация. Выходит, что Tampermonkey, в отличие от Greasemonkey, не запускает код для фреймов?

@Fenex
Copy link
Collaborator

Fenex commented Oct 15, 2014

@FilippovDaniil, надо проверять.

Меня ещё одно удивляет. В метаданных скрипта я указал стартовать в конце. https://github.com/voidmain02/KgScripts/blob/master/scripts/StatisticsAvgResults.user.js#L9
На сколько я себе представляю, эта строка указывает, что скрипт должен стартовать как раз по наступлению события onload. Но если бы это было так, то инжектинг функции main не выполнился бы никогда. Однако оно работает.

Кстати, ты проверял свою версию в tampermonkey?

@ocrest
Copy link
Contributor

ocrest commented Oct 15, 2014

@Fenex, проверил на тестовом юзерскрипте — да, похоже, что Tampermonkey игнорирует все iframe (в консоли нет undefined значений для window.angular)

На сколько я себе представляю, эта строка указывает, что скрипт должен стартовать как раз по наступлению события onload.

Если я правильно понял из документации, document-end запускает скрипт после события DOMContentLoaded, а не load (т.е. когда уже доступен DOM документа, а внешние ресурсы еще могут продолжать загружаться). И это стандартное поведение для Greasemonkey, а в случае Tampermonkey по умолчанию работает document-idle (что-то между document-end и window-load).

Кстати, ты проверял свою версию в tampermonkey?

Да, конечно — проверил в Chrome и CoolNovo на примере своей статистики, все работает нормально.

@P-h-e-m-m-e-r
Copy link
Contributor Author

Сломалось(((

@Fenex
Copy link
Collaborator

Fenex commented Nov 1, 2014

@P-h-e-m-m-e-r , оно не могло поломаться, код на сайте не менялся...

@P-h-e-m-m-e-r
Copy link
Contributor Author

Сейчас уже восстановилось, а вот где-то 2-3 дня не работало. Строка не появлялась. Это могло быть связано с проблемой № 8659 (проблема с всплывающим текстом под курсором в статистике), которую тоже вроде починили...
В любом случае, еще раз спасибо за скрипт!

@P-h-e-m-m-e-r
Copy link
Contributor Author

Вот конкретно сейчас опять повторилось - нет строки. (как и опять появилась проблема № 8659)

@ocrest
Copy link
Contributor

ocrest commented Nov 8, 2014

Подтверждаю, скрипт перестал работать. В консоли вываливается ошибка

results is undefined.

При беглом осмотре выявил, что у объекта scope.Plain.dataTables.table свойство tf почему-то стало теперь Nf — есть какие-нибудь соображения, почему это произошло?

P. S. И да, issue нужно переоткрыть.

@P-h-e-m-m-e-r
Copy link
Contributor Author

Voidmain добавь пожалуйста фенеховое исправление Fenex@6062c52

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants