Membuat Navigasi Halaman Ajax Pada Blogger - Dewa Blogger

Halaman

    Social Items

Buy Now

Prinsipnya sederhana. Di sini Saya memakai navigasi Posting Lebih Lama sebagai navigasi AJAX dan memakai jQuery $.get() untuk memanggil URL pada navigasi tersebut:

// Menyingkirkan navigasi posting lebih gres (Navigasi ini tidak diperlukan) $('#blog-pager').find('#blog-pager-newer-link').remove();  // Dasar AJAX navigasi $('#blog-pager').on("click", "#blog-pager-older-link a", function() {     $.get(this.href, {}, function(data) {         // Proses...     }, "html");     return false; });

Kita akan memakai elemen .blog-posts untuk memuat posting-posting gres dari halaman selanjutnya.

Menerapkan AJAX pada Navigasi Halaman

Pastikan jQuery sudah terpasang pada template. Masuk ke editor HTML template, lalu salin isyarat ini dan letakkan di atas </body>:

<b:if cond='data:blog.pageType != &quot;item&quot;'> <b:if cond='data:blog.pageType != &quot;static_page&quot;'> <script> //<![CDATA[ (function($) {     var $pager = $('#blog-pager'),         $posts = $('.blog-posts');     $pager.find('#blog-pager-newer-link').remove(); // Menyingkirkan navigasi posting lebih gres     $pager.on("click", "#blog-pager-older-link a", function() {         $.get(this.href, {}, function(data) {             var source = $(data).find('.post').length ? $(data) : $('<div></div>');             $posts.append(source.find('.blog-posts').html()); // Menyisipkan posting             $pager.html(source.find('#blog-pager-older-link').clone()); // Memperbaharui navigasi         }, "html");         $(this).replaceWith('<span>Memuat...</span>'); // Ubah navigasi posting menjadi indikator memuat ketika sedang memuat         return false;     }); })(jQuery); //]]> </script> </b:if> </b:if>

Klik Simpan Template.

Sekarang coba buka halaman blog Anda lalu klik navigasi Posting Lama atau Older Post. Jika navigasi tersebut menjelma teks bertuliskan “memuat...” menyerupai ini, maka itu artinya AJAX sedang bekerja:

 untuk memanggil URL pada navigasi tersebut Membuat Navigasi Halaman AJAX pada Blogger
Indikator sedang memuat

Tunggu hingga posting-posting gres muncul di bawah posting-posting yang sedang terlihat ketika ini.

Infinite Scroll (?)

Untuk membuat infinite scroll pada sistem navigasi halaman, cukup nyatakan event .scroll() pada $(window) dan cek apakah jarak gulungan layar telah mencapai batas selesai atau belum. Jika ya, picu event .click() pada navigasi AJAX yang telah kita buat sebelumnya.

Dalam perkara ini, Saya memilih batas selesai gulungan layar bukan menurut tinggi halaman, melainkan menurut posisi navigasi terhadap bab teratas dari layar:

(function($) {      var $pager = $('#blog-pager'),         $posts = $('.blog-posts'),         loading = false;      // AJAX     $pager.find('#blog-pager-newer-link').remove(); // Menyingkirkan navigasi posting lebih gres     $pager.on("click", "#blog-pager-older-link a", function() {         $.get(this.href, {}, function(data) {             var source = $(data).find('.post').length ? $(data) : $('<div></div>');             $posts.append(source.find('.blog-posts').html());             $pager.html(source.find('#blog-pager-older-link').clone());             loading = false;         }, "html");         $(this).replaceWith('<span>Memuat...</span>'); // Ubah navigasi posting menjadi indikator memuat ketika sedang memuat         return false;     });      // INFINITE SCROLL     $(window).on("scroll resize", function() {         // Jika AJAX sedang tidak memuat dan bila jarak gulungan layar + tinggi layar telah mencapai         // tinggi yang sama dengan/lebih besar dari offset navigasi halaman terhadap bab teratas dari layar...         if (!loading && ($(this).scrollTop() + $(this).height()) >= $pager.offset().top) {             $pager.find('#blog-pager-older-link a').trigger("click"); // Picu event `.click()` pada navigasi AJAX posting             loading = true; // Mulai antre pemuatan         }     });  })(jQuery);

Catatan: JavaScript Auto Read-More akan tereksekusi ketika halaman dimuat dengan cara biasa, sehingga jangan kaget bila posting-posting gres yang dimuat oleh AJAX tidak akan terpotong menjadi ringkasan posting. Saya sarankan Anda untuk memakai konsep ringkasan posting tanpa JavaScript yang pernah Saya tuliskan sebelumnya di sini.


Sumber https://www.dte.web.id/

Membuat Navigasi Halaman Ajax Pada Blogger

Prinsipnya sederhana. Di sini Saya memakai navigasi Posting Lebih Lama sebagai navigasi AJAX dan memakai jQuery $.get() untuk memanggil URL pada navigasi tersebut:

// Menyingkirkan navigasi posting lebih gres (Navigasi ini tidak diperlukan) $('#blog-pager').find('#blog-pager-newer-link').remove();  // Dasar AJAX navigasi $('#blog-pager').on("click", "#blog-pager-older-link a", function() {     $.get(this.href, {}, function(data) {         // Proses...     }, "html");     return false; });

Kita akan memakai elemen .blog-posts untuk memuat posting-posting gres dari halaman selanjutnya.

Menerapkan AJAX pada Navigasi Halaman

Pastikan jQuery sudah terpasang pada template. Masuk ke editor HTML template, lalu salin isyarat ini dan letakkan di atas </body>:

<b:if cond='data:blog.pageType != &quot;item&quot;'> <b:if cond='data:blog.pageType != &quot;static_page&quot;'> <script> //<![CDATA[ (function($) {     var $pager = $('#blog-pager'),         $posts = $('.blog-posts');     $pager.find('#blog-pager-newer-link').remove(); // Menyingkirkan navigasi posting lebih gres     $pager.on("click", "#blog-pager-older-link a", function() {         $.get(this.href, {}, function(data) {             var source = $(data).find('.post').length ? $(data) : $('<div></div>');             $posts.append(source.find('.blog-posts').html()); // Menyisipkan posting             $pager.html(source.find('#blog-pager-older-link').clone()); // Memperbaharui navigasi         }, "html");         $(this).replaceWith('<span>Memuat...</span>'); // Ubah navigasi posting menjadi indikator memuat ketika sedang memuat         return false;     }); })(jQuery); //]]> </script> </b:if> </b:if>

Klik Simpan Template.

Sekarang coba buka halaman blog Anda lalu klik navigasi Posting Lama atau Older Post. Jika navigasi tersebut menjelma teks bertuliskan “memuat...” menyerupai ini, maka itu artinya AJAX sedang bekerja:

 untuk memanggil URL pada navigasi tersebut Membuat Navigasi Halaman AJAX pada Blogger
Indikator sedang memuat

Tunggu hingga posting-posting gres muncul di bawah posting-posting yang sedang terlihat ketika ini.

Infinite Scroll (?)

Untuk membuat infinite scroll pada sistem navigasi halaman, cukup nyatakan event .scroll() pada $(window) dan cek apakah jarak gulungan layar telah mencapai batas selesai atau belum. Jika ya, picu event .click() pada navigasi AJAX yang telah kita buat sebelumnya.

Dalam perkara ini, Saya memilih batas selesai gulungan layar bukan menurut tinggi halaman, melainkan menurut posisi navigasi terhadap bab teratas dari layar:

(function($) {      var $pager = $('#blog-pager'),         $posts = $('.blog-posts'),         loading = false;      // AJAX     $pager.find('#blog-pager-newer-link').remove(); // Menyingkirkan navigasi posting lebih gres     $pager.on("click", "#blog-pager-older-link a", function() {         $.get(this.href, {}, function(data) {             var source = $(data).find('.post').length ? $(data) : $('<div></div>');             $posts.append(source.find('.blog-posts').html());             $pager.html(source.find('#blog-pager-older-link').clone());             loading = false;         }, "html");         $(this).replaceWith('<span>Memuat...</span>'); // Ubah navigasi posting menjadi indikator memuat ketika sedang memuat         return false;     });      // INFINITE SCROLL     $(window).on("scroll resize", function() {         // Jika AJAX sedang tidak memuat dan bila jarak gulungan layar + tinggi layar telah mencapai         // tinggi yang sama dengan/lebih besar dari offset navigasi halaman terhadap bab teratas dari layar...         if (!loading && ($(this).scrollTop() + $(this).height()) >= $pager.offset().top) {             $pager.find('#blog-pager-older-link a').trigger("click"); // Picu event `.click()` pada navigasi AJAX posting             loading = true; // Mulai antre pemuatan         }     });  })(jQuery);

Catatan: JavaScript Auto Read-More akan tereksekusi ketika halaman dimuat dengan cara biasa, sehingga jangan kaget bila posting-posting gres yang dimuat oleh AJAX tidak akan terpotong menjadi ringkasan posting. Saya sarankan Anda untuk memakai konsep ringkasan posting tanpa JavaScript yang pernah Saya tuliskan sebelumnya di sini.


Sumber https://www.dte.web.id/