Как запустить скрипт без перезагрузки окна?
Добрый день. Пишу сайт на Django фрэймворке Python. Спецы по этим продуктам рекомендуют обратиться к вам - спецам по JS с моей проблемой.
На странице строятся графики с помощью Google Charts. Отладка идет на web-сервере Django. Если вызвать страницу с графиком по адресу http://127.0.0.1/charts то генерация графиков на странице происходит нормально, правильно. Но сделал вызов этой страницы с графиками с другой страницы через меню. Страница появляется, но графики не появлются. Но если же сделать рефреш таблицы в браузере, то графики уже появлются - все отрабатывает. Скрипт, в котором находится function drawChart(), не отрабатывает при вызове страницы с другой страницы, но отрабатывается после рефреша страницы. Очень прошу помочь. Код генерируемой HTML-страницы: <!DOCTYPE html> <html> <head> <script type="text/javascript" src="//www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { ... } var chart = new google.visualization.LineChart(document.getElementById('fh_chart')); </script> </head> <body> <div class="menu"> <a href="/">Главная</a> <a href="/charts/">Температура</a> </div> <div id="fh_chart" style="width: 900px; height: 500px"></div> </div> </body> </html> |
Спасибо за ответ! Когда я готовил код к публикации здесь, то удалял "мусор", переставлял что-то для упрощения и неправильно вставил строку 13. Виноват...
Вот так выглядит оригинальный код: function drawChart() { ... var chart = new google.visualization.LineChart(document.getElementById('fh_chart')); chart.draw(data, options); } В начале скрипта есть alert(), я его специально привел. Он срабатывает именно после перезагрузки окна и графики все правильно рисуются. Сам скрипт не могу запустить при первой загрузке. |
Вот что в консоли после появления страницы после вызова ее из меню на предыдущей странице:
XHR finished loading: GET "http://127.0.0.1:8000/charts/". send @ VM23 jquery-latest.js:9631 ajax @ VM23 jquery-latest.js:9176 a.mobile.loadPage @ VM24 jquery.mobile-1.3.2.min.js:3 a.mobile.changePage @ VM24 jquery.mobile-1.3.2.min.js:3 (anonymous) @ VM24 jquery.mobile-1.3.2.min.js:3 dispatch @ VM23 jquery-latest.js:4641 elemData.handle @ VM23 jquery-latest.js:4309[/i] Эти библиотеки я запрашиваю. А потом после рефреша этой же страницы: Navigated to http://127.0.0.1:8000/charts/ И со второго раза отрабатывает скрипт который содержит function drawChart() и графики появляются |
Цитата:
Скорее всего у вас либо ресурсы не подгружаются, либо callback-функция не вызывается. |
Цитата:
Называется - нашел помощь на форуме... Ну и ладно. Nexus, - спасибо за ответ. Вы правы - дело в callback, я понимал это сразу. Просто, задачка у меня совсем небольшая была - показать на странице некоторые данные для своих личных целей. Хватало азов HTML и JS. Я разберусь. Спасибо Вам! |
Цитата:
|
Часовой пояс GMT +3, время: 07:42. |