Misalnya Google Analytics menggunakan document.location.protocol di boilerplate untuk pelacakan:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
dari pada
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = '//www.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
Ssl. sub-domain adalah argumen bisu karena https://www.google-analytics.com/ga.js berfungsi dengan baik.
Mengetahui Google ini kemungkinan besar bukanlah kekeliruan. Apakah ada masalah dengan browser tertentu yang tidak mendukung // protokol menghormati steno atau ada hal lain yang saya lewatkan?
EDIT: Ini tidak hanya berlaku untuk Google Analytics (contoh sub-domain yang berbeda). Hal yang sama muncul di halaman Font Loader API :
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
javascript
google-analytics
https
Metalshark
sumber
sumber
Jawaban:
Memang, itu bukan pengawasan oleh Tim GA!
Pemuat GA memuat skrip, jadi itu tidak terpengaruh oleh bug unduhan ganda pada
<link>
atau@import
untuk stylesheet di IE7 / IE8.Mereka menggunakan operator kondisional (ternary)
document.location.protocol
karena bug tepi-kasus di IE6 yang menyebabkan dialog keamanan muncul di bawah pengaturan keamanan tertentu ketika meminta dari subdomain bukan -sl , seperti dijelaskan oleh Paul Irish (yang bekerja bersama dengan pengembang utama javascript Google Analytics tentang masalah ini) di blognya: https://www.paulirish.com/2010/the-protocol-relative-url/ di mana saya kutip di bawah ini:sumber
Setidaknya ada satu masalah di IE karena menyebabkan unduhan ganda: http://www.stevesouders.com/blog/2010/02/10/5a-missing-schema-double-download/
sumber
Anda sudah menunjukkan perbedaan dalam hal Google Analytics, yaitu bahwa versi aman diaktifkan
https://ssl.
alih-alihhttp://www.
. Sementara versi aman dari www dapat berfungsi, itu juga bisa berbeda dengan versi ssl:Saya tidak tahu apakah ini berlaku untuk Google. Dari pandangan sekilas kode itu tampak sama.
sumber
//
protokolnya?Jawaban Stack Overflow ini memberikan beberapa poin bagus.
Penting untuk secara eksplisit menentukan protokol sehingga aset target dimuat dengan benar dalam dokumen yang dibuka dari drive lokal (
file:
) atau saat menggunakan "iframe magic" (about:
).sumber
//www.google-analytics.com/ga.js
bukan URL per standarnya, karena tidak memiliki skema, yang wajib. Ini berfungsi dan digunakan, tetapi tetap tidak sesuai dengan standar URL.Lihat RFC3986 §3:
sumber