Обновление страницы в диалоговом окне jquery

У меня есть диалоговое окно jquery, которое открывает карту. После закрытия карты страница обновляется. Это работает правильно. Мой вопрос в том, как я могу сделать его более эффективным. Я хочу, чтобы страница внизу обновлялась, и когда пользователь выбирает другую ссылку, диалоговое окно обновляет информацию соответствующим образом. Я использую reload(), но некоторые ресурсы на странице очень велики, и для перезагрузки всей страницы требуется немного времени.

Вот мое диалоговое окно:

function openBox(v) {
    $("#mapDiv").dialog({
        autoOpen: false,
        height: 600,
        width: 900,
        title: "Deomographic Profile",
        close: function (ev, ui) { window.location.reload() }

    });

    //open dialog and show the legend in the dialog
    $("#mapDiv").dialog("open");
    $("#legend").show();
}//end open box

person Troy Bryant    schedule 29.08.2013    source источник
comment
обновлять только тот контент, который можно изменить с помощью диалоговой операции с использованием запроса ajax вместо перезагрузки всей страницы   -  person Vijay    schedule 29.08.2013


Ответы (2)


Вы можете просмотреть свою страницу, решить, какие ее части нужно обновить, когда карта закроется, и прикрепить идентификаторы к этим элементам. Затем вы можете вызывать метод AJAX каждый раз при закрытии карты, который получает информацию, которую необходимо обновить, с вашего сервера и заполняет эти элементы информацией.

person BenM    schedule 29.08.2013

Тогда вы можете рассмотреть возможность использования Ajax, см. документ здесь: http://api.jquery.com/jQuery.ajax/ Это позволяет вам изменить часть страницы без обновления. Если вам не нужен Internet Explorer, вы можете изменить значения URL-адреса без обновления с помощью следующих элементов: https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history дает вам возможность иметь "историю", не меняя страницы. Если вам нужна дополнительная помощь, спросите меня, я дам вам несколько советов

person Bene    schedule 29.08.2013
comment
только что попробовал window.location.back(), мне это не нравится для этого приложения. Я действительно считаю, что ajax будет маршрутом, но точка в правильном направлении приветствуется, поскольку я новичок в ajax. - person Troy Bryant; 29.08.2013
comment
Прежде всего, когда вы загружаете материал ajax, вы не хотите перезагружать все свои активы (css, js). Итак, в ваших php-файлах, где бы у вас ни были эти файлы, добавьте параметр, такой как if (!isset($_REQUEST['ajax'])) { // эхо-активы }. Затем попробуйте следующее: pastebin.com/gRAgxvgs Это может быть немного сложно, но есть пример ajax ($. ПОЧТА). Вы можете использовать весь этот скрипт или просто взять то, что вам нужно, мне все равно - person Bene; 29.08.2013