Страница 16 из 23
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 11:20 am
Bagir
Highstock это хорошо. Но давайте посмотрим и Highcharts. В нем обилие разнообразных графиков, и похоже там есть все, что только могло бы придти в голову. Я сразу приметил
Но тут есть маленькая проблемка. Дело в том, что папка highcharts уже есть в МД. И нам придется ее заменить. Это ни на что не повлияет, если ранее вы не использовали highcharts графики. Так же это не повлияет на работу предложенного мною выше Highstock. Но при обновлении МД файлы в папке highcharts будут заменены. Просто
помните об этом. После большого тестирования, Сергей добавит новые версии highcharts и Highstock в дистрибутив если с ними все будет хорошо работать, и тогда с обновлением не будет проблем.
1. Удалите (переместите в архив) папку highcharts в каталоге с файлами МД
2. Скопируйте туда такую же папку highcharts из вложения
В ней можно найти папку examples. Там полно разных примеров. Просто запускайте любой файл index.htm в браузере.
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 1:21 pm
Vit
Bagir писал(а):Да чтож такое то. Будет разбираться. Мой jsonp.php отрабатывает. Это хорошо. Дальше Надо проверить по шагам работу графиков. Независимо от МД, запускаем в браузере файлы index.htm Этот пример лежит в highstock/examples/compare Это вторая часть пункта 1 поста выше. Смотрим результат. Если он есть, приступаем к пункту 3.
вот так вроде отрабатывает
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 2:03 pm
Bagir
Ну тогда надо пройти третий пункт сообщения
http://smartliving.ru/forum/viewtopic.p ... 843#p14843 по шагам, и выяснить где отказ.
Самое первое. Скопировать весь код примера в код домашней страницы и изменить пути к скриптам.
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 2:27 pm
Vit
Bagir писал(а):
Но тут уже надо кое что поменять. В конце хода есть две строки
Код: Выделить всё
<script src="../../js/highstock.js"></script>
<script src="../../js/modules/exporting.js"></script>
В них нужно поменять путь к папке js. Пишем так:
Код: Выделить всё
<script src="/highstock/js/highstock.js"></script>
<script src="/highstock/js/modules/exporting.js"></script>
Все! сохраняем и идем смотреть что получилось. Если мы видим график на домашней странице - эксперимент удался, и можно колдовать дальше.
Возвращаемся к коду и находим в самом начале строку
Код: Выделить всё
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
Гугль это хорошо, но нам может потребоваться и автономная работа. Поэтому заменяем строку на
Код: Выделить всё
<script type="text/javascript" src="/highstock/js/jquery-1.8.2.min.js"></script>
Идем проверять. Не забудьте обновить (F5) страницу в браузере. Все осталось на месте? - Отлично.
4. Настраиваем код графика на работу с нашими данными. Укажем от какого объекта драть данные. Находим строку
и меняем на две строки
Код: Выделить всё
names = ['это все моё!'],
sensornames = ['OfficeRoom.Temperature'];
Массив names это имена графиков. Массив sensornames - имена Объект.Свойств. Пока укажем только одно имя и свойств. Идем смотреть график.
Вот на этом месте.
как только начинаю исправлять массив все график перестает отображаться...
у меня виндовс версия
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 2:30 pm
Bagir
Но в исходном примере тоже массив имен. Вот он names = ['MSFT', 'AAPL', 'GOOG'], просто имена графиков совпадают с именами запросов, а у нас нет. Поэтому и делаем второй массив. Уверен, тут где то просто какой то крючок
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 2:37 pm
Vit
Bagir писал(а):Но в исходном примере тоже массив имен. Вот он names = ['MSFT', 'AAPL', 'GOOG'], просто имена графиков совпадают с именами запросов, а у нас нет. Поэтому и делаем второй массив. Уверен, тут где то просто какой то крючок
поменял массив
поменял путь
данные есть
графика нет
где затык не пойму
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 10:28 pm
Bagir
Надо искать проблему по шагам.
Первый шаг:
Если пример в браузере отрабатывает, то для начала мы просто копируем текст кода страницы примера в МД код домашней страницы без изменений. Один в один, как есть. НО!!! нам надо поменять путь к js файлам.
Код: Выделить всё
<script src="../../js/highstock.js"></script>
<script src="../../js/modules/exporting.js"></script>
В них нужно поменять путь к папке js. Пишем так:
Код: Выделить всё
<script src="/highstock/js/highstock.js"></script>
<script src="/highstock/js/modules/exporting.js"></script>
Проверяем. Должно работать!
Re: "Живые" графики нужна помощь.
Добавлено: Сб окт 25, 2014 11:50 pm
Vit
Bagir писал(а):Надо искать проблему по шагам.
Первый шаг:
Если пример в браузере отрабатывает, то для начала мы просто копируем текст кода страницы примера в МД код домашней страницы без изменений. Один в один, как есть. НО!!! нам надо поменять путь к js файлам.
Код: Выделить всё
<script src="../../js/highstock.js"></script>
<script src="../../js/modules/exporting.js"></script>
В них нужно поменять путь к папке js. Пишем так:
Код: Выделить всё
<script src="/highstock/js/highstock.js"></script>
<script src="/highstock/js/modules/exporting.js"></script>
Проверяем. Должно работать!
я по шагам сделал и написал на каком шаге затык)
Re: "Живые" графики нужна помощь.
Добавлено: Вс окт 26, 2014 10:19 am
Bagir
Можно воспользоваться alert(), чтобы убедиться в правильности составления адреса запроса.
Код: Выделить всё
$.each(names, function (i, name) {
alert ('/jsonp.php?name='+sensornames[i]);
$.getJSON('/jsonp.php?name='+sensornames[i], function (data) {
Или вообще подменить имя в строке
Код: Выделить всё
$.getJSON('/jsonp.php?name='+sensornames[i], function (data) {
к примеру так
Код: Выделить всё
$.getJSON('/jsonp.php?name=Chisinau.tempOutside', function (data) {
Чудес не бывает, заставим работать. У меня тоже Windows.
Re: "Живые" графики нужна помощь.
Добавлено: Вс окт 26, 2014 12:02 pm
SmallFox
Код: Выделить всё
$.each(names, function (i, name) {
...
...
// As we're loading the data asynchronously, we don't know what order it will arrive. So
// we keep a counter and create the chart when all the data is loaded.
seriesCounter += 1;
// if (seriesCounter === names.length) { // закоментировать
createChart();
// } // закоментировать
});
});
Попробуй так.