Вопрос по jquery-mobile, jquery, jqplot – JQuery-mobile: загрузка графика JQPlot через запрос AJAX

0

Я новичок в JQuery Mobile и пытаюсь отобразить страницу с графикой JqPlot в зависимости от выбора пользователя.

Сегодня утром я читал и экспериментировал с тем, что дизайн кода javascript страницы, отображаемой / загружаемой при нажатии на ссылку, не выполняется.

Чтобы учесть JS-скрипт загружаемой страницы, атрибут datadata-ajax ссылки должны быть установлены на false. Но в этом случае браузер перезагружает все страницы, и для пользователя не происходит плавного перехода.

<a href="myUrl.php" data-ajax="false" data-transition="slideup" data-role="button" data-theme="c"> </a>

Я нашел способ понять это,но мне нужен экспертный обзор моего кода, Идея состоит в том, чтобы объявить событиеpageshow на странице контейнера графика#page-detail загрузить страницу создания графика через JQuery.load() функция.

Таким образом, я могу:

Удачного перехода на мою страницуИметь загрузочный div, куда будет загружен мой графикРендеринг моего графика, когда загрузка данных и граф JqPlot готовы

Мой код:

  $(document).on('pageshow','#page-detail',function(){       
        //Apply a loading layer to the graph container
        $('#graph-container').html(""+g_graphLoadingText+"");                    

        //Load my graphic page creation. In this page, there are JS code to create the JQplot graphic
        $('#graph-container').load(g_baseUrl+"index/graph/format/html",{chartHeight : newHeight+'px'},function(response, status, xhr) {
            console.log('loaded')
        });                 
    });

Мое решение выше болезненно, и я уверен, что я мог бы легко загрузить свой график. Есть кто-то с лучшим решением? Лучшая реализация кода?

Ваш Ответ

1   ответ
0

.load() является хорошим вариантом для загрузки страниц, включая выполнение Javascript и применение CSS согласно стандартной загрузке страницы. Я использовал эту технику с частичными страницами на одностраничном веб-сайте MVC и нашел ее очень эффективной.

Я не былЯ совершенно не понимаю ваших опасений по поводу ссылок, но, конечно, используя .load () внутринажмите» Обработчик ссылок тоже будет работать.

Ваш код выглядит звучащим, и этоПриятно видеть, что вы применяете загрузочный слой во время асинхронной загрузки. Я'Я не уверен на 100% уверен, как этот слой работает для вас, но яя думаю, что вам, вероятно, нужно скрыть / удалить его, как только.load() завершен, поэтому, возможно, для этого требуется дополнительный код в обработчике после загрузки?

На мой взгляд, не удобно использовать этот метод каждый раз, когда мне нужно выполнить код JS, написанный на странице для загрузки. Я знаю, что это для мобильных телефонов, и JS-код должен быть загружен только в первый раз, чтобы быть эффективным, но иногда страница должна выполнять определенный JS-код, и более удобно писать на самой странице. sdespont
Да, ты прав. Но мой вопрос больше о.load() использование в контексте JQuery Mobile. Мое решение выше болезненно, и я уверен, что я мог бы легко загрузить свой график sdespont
Спасибо за обновление вашего ответа. На самом деле, загрузочный слой перезаписывается кодом графика, когда страница загружена. sdespont
Что конкретноболезненный» для вас с этим вариантом, и какие альтернативы вы исследовали? Chamila Chulatunga

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