Как вызвать блокировку просмотра по щелчку мыши?
У меня есть страница/узел, который содержит 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? Может кто-нибудь указать мне правильное направление?
Заранее благодарю вас!
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!');
}
});
Вам нужно попробовать этот модуль ajaxblock, я использовал его с ubercart для создания сайта электронной коммерции.
Позволяет загружать некоторые блоки дополнительным AJAX-запросом после загрузки всей кэшированной страницы, когда страница просматривается анонимным пользователем. Он подходит для сайтов, которые в основном статичны, и кэширование страниц для анонимных пользователей является большим преимуществом, но есть некоторые фрагменты информации, которые должны быть динамическими.