Tampilkan postingan dengan label Javascript. Tampilkan semua postingan
Tampilkan postingan dengan label Javascript. Tampilkan semua postingan

Minggu, 11 Juni 2017

Cara Mengatasi Render-Blocking Javascript DI PageSpeed Insights

tutorial perenderan script dengan asyncUntuk keperluan PageSpeed Insights agar penggunaan script seperti javascript pada jQuery Library bisa kita sembunyikan penempatanya. namun saya tidak bisa mengatakan dengan mengatasi masalah ini bisa membuat speed halaman web/blog lebih cepat. karana pada dasarnya halaman akan membaca keseluruhan penggunaan script yang ada.
Pernahkah anda mengalami seperti ini.
masalah render-blocking  PageSpeed Insights
Karena pada script jQuery kita tidak di set Asynchronous (Async). cara mengatasinya lihat pada script jQuery anda. tempatkan Attribute async pada script tersebut seperti ini
<script async src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'></script>
untuk pengguna template XML agar bisa tersimpan - async='async'
<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'></script>
lihat penggunaan Attribute async
Cara lain dengan Javascript sebagai pemanggil url script.
<script type='text/javascript'>
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true; // set true untuk async jquery
s.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
</script>
untuk permasalahan yang mungkin terjadi pada beberapa kasus untuk template blogger bisa lihat tutorialnya pada asynchronous javascript pada blogger

Asynchronous Javascript Pada Blogger Tidak berjalan pada Firefox ?

Mengatasi Asynchronous Javascript Pada BloggerBagi para pengguna Template XML Blogger yang berniat untuk set javascript dari jQuery Library menjadi async (Asynchronous). mungkin ini di maksudkan Mengatasi Render-Blocking Javascript alhasil script jquery yang ada malah tidak berjalan pada peramban tertentu semisal firefox padahal kalau di buka pada browser Chrome/Opera berjalan lancar. lalu apa masalahnya ?
kemungkinan terjadi karena template Blogger anda valid HTML5. kok bisa ?
coba lihat pada template blogger anda temukan code <head>. tapi untuk kebutuhan agar valid HTML5 / hidden CSS Bundle Blogger biasanya kalian rubah menjadi &lt;head&gt; dan penutupnya menjadi &lt;/head&gt;.
nah agar script jquery berjalan kembali cukup ganti code tadi menjadi <head> kembali tapi akan membuat template anda tidak valid HTML5 lagi bahkan Render-Blocking bertambah pada CSS Bundle BLogger.
Terus caranya agar Asynchronous Javascript Jquery tetap berjalan namun valid HTML5 juga bagaimana ?
Pertama lihat apakah anda sudah menempatkan script jquery librarynya. jika belum itulah penyebab utama kenapa script jquery lain tidak berjalan ^_^.
coba pasang script jquery librarynya yang sudah di set Async. (jika yang sudah ada abaikan)
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' async='async' type='text/javascript'></script>
bisa juga seperti ini
diskusikan jika ada masalah pada script ini.
<script type='text/javascript'>
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true; // set true untuk async jquery
s.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
</script>
Tempatkan code di atas biasanya penempatan sebelum penutup <head>.
contoh:
<head>

//Script Pasang di antara Tag Head

</head>
Sekarang memasuki kasus permasalahnnya.
Ask. "Saya sudah pasang jQuery di atas dan script jQuery yang sudah ada tidak berjalan pada firefox ?".
itu di karenakan karena tidak adanya fungsi callback script jQuery dimana penutup tag head yang sudah di rubah menjadi &lt;head&gt; menjadikan script librarynya tidak di ketahui penempatannya oleh Firefox.
cara mengatasinya.
script jQuery yang sudah ada tinggal tambahkan callback onload ceperti ini.
window.onload = function () {

//scipt jQuery anda
// seperti back to top atau apa sajalah yang berkaitan dengan jQuery

};
contoh penggunaanya misal script yang sudah ada pada bagian </body> seperti ini
<script type='text/javascript'>
//<![CDATA[
window.onload = function () {

$('tagID 1, tagID 2').each(function() {
//script lainnya
});

or

function() {
//script lainnya
}

};//penutup onload
//]]>
</script>
Seharusnya dengan penambahan script di atas script jQuery anda akan berjalan lancar di semua Browser.
Tinggal kalian test saja bagaimana hasilnya dan buka pada beberapa peramban browser anda. apa sudah tidak ada masalah atau masih tidak berjalan.
cara lain mengatasi Render-Blocking Pada CSS atau Javascript saya buat pada artikel terpisah.
Cara Mengatasi Render-Blocking Javascript DI PageSpeed Insights
selebihnya kalian bisa diskusikan permasahannya

Sabtu, 10 Juni 2017

Memasukkan Update Tahun Otomatis Pada HTML - PHP - Javascript

Script sederhana pasang pergantian tahun copyright secara otomatis pada HTML Web / Blog menggunakan dengan PHP ataupun Javascript.

Versi Javascript

Dengan javascript murni tempatkan biasanya pada bagian footer
<script type="text/javascript">
  document.write(new Date().getFullYear());
</script>
hasil outputnya :
atau juga seperti ini
Copyright &copy; 2016 <script type="text/javascript">
new Date().getFullYear()>2016&&document.write("-"+new Date().getFullYear());
</script>, Nama Website.
hasil outputnya :
Copyright © 2016, Nama Website.

Versi PHP

Tergantung pengaturan waktu yang digunakan.
apakah anda menggunakan Wordpress ? biasanya penerapan pada footer.php.
<?php echo date("Y"); ?>
hasil outputnya :
Atau juga seperti ini.
Copyright &copy; <?php
  $fromYear = 2016; 
  $thisYear = (int)date('Y'); 
  echo $fromYear . (($fromYear != $thisYear) ? '-' . $thisYear : '');?> Nama Website.
hasil outputnya :
Copyright © 2016, Nama Website.

Senin, 05 Juni 2017

Membuat Layout Sidebar Sama Tinggi Dengan Konten

Layout Sidebar Sama Tinggi
masih dalam konteks CSS Flexbox. hampir sama dengan layout footer tetap di bawah dengan Flexbox. namun kali kali ini saya hususkan hanya pada sidebar dengan 2 kolom atau 3 kolom. Perhatikan code-code CSS agar lebih jelas apa dan bagaimana fungsinya.
Layout Sidebar Sama Tinggi Dengan Konten
ada beberapa cara agar sidebar sama tinggi dengan main konten atau sebaliknya yaitu menggunakan CSS ataupun dengan javascript atau jQuery, sebelum adanya CSS flexbox pilahan lain adalah menggunakan table namun bukan itu yang akan kita bahas, kita akan tetap memanfaatkan layout Flexbox.
cara pertama kita bahas dengan CSS Flexbox pada dasarnya hal ini paling mudah untuk kita pahami dan terapkan. hal yang pertama adalah membuat HTML nya dulu, tanpa itu CSS seribu kata pun gak akan nampak hasilnya..

kita ambil contoh HTML nya seperti ini
<div class="container"> <!-- FlexBox -->
<div class="konten">Konten</div>
<div class="sidebar-kiri">Sidebar Kiri</div>
<div class="sidebar-kanan">Sidebar Kanan</div>
</div>
Buat CSS pada container menggunakan display:flex
.container{
display: flex; /* atau inline-flex */
}


/*

Atau Lengkap Dengan Dukungan Semua Browser.

*/


.container{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex; /* atau inline-flex */
}

CSS di atas sudah mewakili bahwa item yang berada pada wadah container sudah dalam posisi flexible - standarnya item-item tersebut memiliki arah horizontal / row. hasilnya seperti ini, dan memiliki sama tinggi.

flexbox colom sama tinggi
namun untuk masing-masing kolom jangan pernah memberi nilai masukan height. misal height:100% kecuali min-height.
Perlu di ingat penggunaan display:flex berbeda dengan display:inline | block yang bergantung berapa nilai masukan seperti width: <integer>%/<integer>px/<integer>vw/<integer>....
untuk tambahan CSS lain kalian bisa diskusikan pada komentar.
solusi lain yaitu dengan memanfaatkan jQuery. karena hampir semua Web design/Blog menyimpan Script jQuery kenapa tidak kita manfaatkan saja untuk mengatur sama tinggi.
Code scriptnya kurang lebih seperti berikut. (perkecil jika kalian menguasai script Variabl atau if else) script ini untuk 3 kolom. kalau 2 kolom script akan lebih pendek.

// Object Kolom
var c = $('.konten'); // class box .konten
var s = $('.sidebar-kiri'); // class box .sidebar-kiri
var k = $('.sidebar-kanan'); // class box .sidebar-kanan
// Dapatkan nilai tinggi dengan outerHeight(); / Height();
var getKontenHeight = c.outerHeight();
var getKiriHeight = s.outerHeight();
var getKananHeight = k.outerHeight();
// Cek jika konten lebih tinggi dari sidebar
if ( getKontenHeight > getKiriHeight ) {
s.css('min-height', getKontenHeight);
}else{
if(getKananHeight > getKiriHeight){
s.css('min-height', getKananHeight);}
}
if ( getKontenHeight > getKananHeight) {
k.css('min-height', getKontenHeight);
}else{
if(getKiriHeight > getKananHeight){
k.css('min-height', getKiriHeight);}
}
// cek jika sidebar lebih tinggi dari konten
if ( getKiriHeight > getKontenHeight) {
c.css('min-height', getKiriHeight);
}else{
if(getKananHeight > getKontenHeight){
c.css('min-height', getKananHeight);}
}

untuk 2 kolom kurang lebih seperti ini

// Object Kolom
var c = $('.konten'); // class box .konten
var s = $('.sidebar-kiri'); // class box .sidebar-kiri
// Dapatkan nilai tinggi dengan outerHeight(); / Height();
var getKontenHeight = c.outerHeight();
var getKiriHeight = s.outerHeight();
// Cek jika konten lebih tinggi dari sidebar
if ( getKontenHeight > getKiriHeight ) {
s.css('min-height', getKontenHeight);
}
// cek jika sidebar lebih tinggi dari konten
if ( getKiriHeight > getKontenHeight) {
c.css('min-height', getKiriHeight);
}
Sesuatu yang tidak di inginkan terjadi. inilah kekurangan menggunakan jquary. kasus tersebut terjadi pada perangkat mobile/tablet/phone ketika memutar layar dari Potrait ke landscape ataupun sebaliknya. namun hal tersebut akan normal jika browser di refresh. mungkin ada beberapa faktor yang kurang pada script atau memang script tersebut akan berjalan dalam kondisi awal atau pada saat kita membuka pertama kali.
masalah tinggi layout sidebar
Cara Penerapan Layout kolom Header,Konten,Sidebar,Footer responsive menggunakan Pure CSS Flexbox lihat demonya.