Как вызвать блокировку просмотра по щелчку мыши?


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

Как загрузить блок просмотра только тогда, когда он мне нужен? например, я бы нажал кнопку/div (место проведения), тогда место проведения блока просмотра загрузится вместо того, чтобы вызывать все блоки просмотра в шаблоне и позволять ему загружать все сразу.

ОБНОВЛЕНИЕ: Я пытался использовать ajax, но он не работает, хотя я включил ajax на блок просмотра.

Это код, который я использовал:

JS:

$(document).ready(function(){
$("#getvenue").click(function(){
    $.ajax(
    Drupal.settings.basePath + 'views/ajax',
    {

    view_name: 'custom_package_form',view_display_id: 'block_56'
    },

    function(response)
    {
        if (response[1] !== undefined) 
        {
            var viewHtml = response[1].data;
            $("#output-venue").html(viewHtml);

            Drupal.attachBehaviors();
        }
        else {
            $("#output-venue").html("NONE");
        }


    });
    });
 });

TPL места проведения узла:

<button id="getvenue"> GET VENUE </button>
<div id="output-venue"></div>

Ничего не происходит, я попытался предупредить var viewHtml, чтобы узнать, есть ли в нем что-то, предупреждение показывает только null.

Что не так с JS? Может кто-нибудь указать мне правильное направление?

Заранее благодарю вас!

Author: kiamlaluno, 2015-08-17

2 answers

Попробуйте этот код

$.ajax({
    url: Drupal.settings.basePath + 'views/ajax',
    type: 'POST',
    dataType: 'json',
    data: 'view_name=custom_package_form&view_display_id=block_56',
    success: function(response) {
      var output = response[1].data;
      $("#output-venue").html(output);
    },
    error: function(data) {
        alert('An error occured!');
    }
});
 1
Author: M a m a D, 2015-08-18 06:29:51

Вам нужно попробовать этот модуль ajaxblock, я использовал его с ubercart для создания сайта электронной коммерции.

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

 0
Author: vgoradiya, 2015-08-17 07:09:31