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>
何も起こらない、私はそれが何かを持っているかどうかを確認するために変数viewHtmlに警告を試みました、警告はnullしか表示しません。
JSの何が問題になっていますか?誰かが私を正しい方向に向けることができますか?
前もって感謝します!
このコードを試してください
$.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 、eコマースサイトの構築にubercartを使用しました。
匿名ユーザーがページを表示したときに、キャッシュされたページ全体をロードした後、追加のAJAX要求によっていくつかのブロックをロードすることを許可します。ほとんどが静的なサイト、および匿名ユーザーのページキャッシュに適しています。は大きなメリットですが、動的でなければならない情報がいくつかあります。