Yipin Sky Web Development Code Station ASP dan blog pengumpulan kode klasik lainnya yang terkait dengan pengembangan Web - Komunikasi ASP Grup QQ 12814238 (lengkap) 14725152 (terbuka) Halaman beranda Rekonstruksi dan optimalisasi ASPJS/AJAX pengumpulan database kode komprehensif dan berbagi sistem operasi hiburan audio-visual Artikel sebelumnya |. Berikutnya Artikel JS/AJAX
Cara meneruskan parameter ke file JavaScript di JavaScript Penulis: Yipin Tanggal: 23-03-2009
Ukuran font: kecil, sedang,
besar
. Ini adalah cara paling sederhana untuk menggunakan variabel global, seperti Google Adsense:
kode program
<skrip tipe="teks/javascript">
google_ad_client = 'pub-3741595817388494';
</skrip>
<skrip type="teks/javascript" src=" http://pagead2 .
googlesyndication.com/pagead/show_ads.js"></script>
Kerugiannya adalah diperkenalkannya variabel global. Ada dua variasi cara memasukkan file:
kode program
// Varian 1: Gunakan document.write untuk menghasilkan output
<skrip tipe="teks/javascript">
google_ga_id = 'g6u7un8646xx';
dokumen.tulis(unescape('%3Cscript type="teks/javascript" src=
" http://www.google-analytics.com/ga.js"%3E%3C/script%3E' ));
</skrip>
kode program
// Variasi 2: Gunakan operasi DOM untuk menambahkan ke kepala
<skrip tipe="teks/javascript">
G_BEACON_ATP = 'kategori=&userid=&saluran=112ad_id=';
document.getElementsByTagName('head')[0].appendChild(document.
createElement('script')).src='http://taobao.com/atp.js';
</skrip>
Catatan: Kode di atas adalah kode demonstrasi virtual berdasarkan aplikasi sebenarnya
. Catatan: Varian 1 digunakan di banyak aplikasi. Metode penulisan yang umum adalah sebagai berikut:
kode program
<skrip tipe="teks/javascript">
// Langsung saja kabur:
document.write('<script type="text/javascript" src="test.js"></script>');
// Atau sukai beranda Yahoo!
document.write('<scr' + 'ipt type="text/javascript" src="test.js"></scr' + 'ipt>');
</skrip>
2.
Dibandingkan dengan mendapatkan dan menguraikan src elemen skrip dan semua variabel, kami lebih memilih meneruskan parameter sebagai berikut:
kode program
<skrip type="text/javascript" src="test.js?a=b&c=d"></script>
Masalah intinya adalah bagaimana cara mendapatkan atribut src.
Metode pertama adalah menambahkan atribut id ke skrip, mendapatkan skrip saat ini melalui id, lalu menggunakan ekspresi reguler untuk mengekstrak parameter dari src. Kekurangannya pada Spesifikasi HTML 4.01, elemen SCRIPT tidak memiliki atribut id. Kekurangan ini bukanlah suatu kekurangan. Bagaimanapun, lebih baik percaya pada standar daripada tidak memiliki standar.
Metode kedua adalah dengan menggunakan nama file js sebagai pengait. Setelah meneruskan document.getElementsByTagName('script') dalam kode js, file js saat ini dicocokkan dengan aturan reguler. Metode ini sangat ortodoks, tetapi memerlukan nama file yang unik. Kekurangannya adalah kodenya banyak, tidak disempurnakan, dan berdampak kecil pada performa.
Metode ketiga adalah dengan menambahkan data atribut khusus berdasarkan metode satu:
kode program
<skrip id="testScript" type="text/javascript" src="test.js" data="a=b&c=d"></script>
Pada file test.js, parameter yang diteruskan diperoleh melalui baris berikut:
kode program
var scriptArgs = dokumen.getElementById('testScript').getAttribute('data');
Cara keempat adalah dengan menggunakan mekanisme eksekusi sekuensial js (file js dapat dimuat secara sinkron atau asinkron, tetapi ketika dijalankan, harus dijalankan sesuai urutan alur dokumen). Ketika file js dijalankan, file tersebut harus menjadi yang terakhir di antara file js yang "dimuat":
kode program
var skrip = document.getElementsByTagName('skrip');
var skrip saat ini = skrip[skrip.panjang - 1];
Cara ke empat lebih cekatan dan jenius dibandingkan cara ke dua.
Dalam hal penyederhanaan kode dan kinerja, Metode 3>Metode 1>Metode 4>Metode 2
Ringkasan: Jika Anda peduli dengan standar, saya merekomendasikan metode 4; jika seperti saya, Anda merasa tidak perlu sepenuhnya mematuhi standar, metode 3 direkomendasikan.
3. Rencana Inspirasi Jika Anda penggemar setia John Resig seperti saya, Anda mungkin masih ingat "Tag Naskah yang Merendahkan" yang ramai diperbincangkan pada Agustus tahun lalu. John Resig membuka pintu imajinasi bagi kita. Untuk masalah artikel ini, “cara jahat” berikut juga dapat digunakan untuk mencapainya:
kode program
<skrip type="teks/javascript" src="test.js">
TB.SomeApp.scriptArgs = 'a=b&c=d';
</skrip>
Dalam file test.js:
kode program
TB = {}; TB.SomeApp = {};
var skrip = document.getElementsByTagName("skrip");
eval(skrip[skrip.panjang - 1].innerHTML);
Ini menyimpan parameter dalam variabel TB.SomeApp.scriptArgs.
Jika parameternya tidak banyak, Anda bahkan dapat melakukan ini:
kode program
<skrip type="teks/javascript" src="test.js">a=b&c=d</script>
berkas js:
kode program
var skrip = document.getElementsByTagName("skrip");
var scriptArgs = skrip[ skrip.panjang - 1 ].innerHTML.replace(/[s]/g, '');
Imajinasi tidak terbatas, Anda juga dapat menggunakan onload:
kode program
<skrip type="text/javascript" src="test.js" xxxxx="TB.SomeFun('a=b&c=d')"></script>
Cukup tentukan fungsi dalam file js:
kode program
TBC = {};
TB.SomeFun = function(arg) { //kode };
Kode di atas dapat berjalan dengan benar di browser non-IE. Untuk yang bodoh, Anda harus menambahkan beberapa baris kode:
kode program
if(jendela.ActiveXObject) {
var skrip = document.getElementsByTagName('skrip');
eval(skrip[skrip.panjang - 1].getAttribute('onload'));
}
Selama kita terus mengedepankan semangat gali, saya yakin akan ada solusi yang lebih inspiratif -.-
Setelah merangkum solusi-solusi di atas, solusi manakah yang terbaik? Jawaban saya adalah: Tidak ada yang terbaik, yang ada hanya yang paling cocok! Karena untuk aplikasi yang berbeda dan konsep yang berbeda, definisi “baik” pun berbeda.
Misalnya, filosofi saya saat ini adalah tidak perlu sepenuhnya mematuhi standar. Sedangkan untuk variabel global, yang perlu kita hindari adalah penyalahgunaan, bukan penggunaan. Oleh karena itu, saya akan memilih solusi variabel global yang paling sederhana dan memiliki kinerja terbaik.