Komponen JS biasanya dilengkapi dengan gambar css, tetapi mungkin agak merepotkan untuk menggunakannya dengan cara ini. Untuk membuat komponen tersebut cukup solo, saya mendapat ide untuk mengemas gambar css dalam js, dan kemudian. ngomong-ngomong, mengurangi jumlah permintaan. Ini sepertinya lebih penting.
Jadi bagaimana cara mengemasnya? Meskipun ada solusi seperti resource-packages , pengguna inti kami masih menggunakan browser modis seperti ie6!
Solusi saya:
- CSS : CSS dapat disimpan di js sebagai string dan ditambahkan secara dinamis ke halaman oleh js. Halaman tersebut mungkin tidak cocok untuk digunakan, tetapi komponen biasanya tidak akan terpengaruh.
- image : Gambar yang digunakan dalam CSS dikompilasi menjadi js menggunakan dataURI ( RFC 2397 ) dan MHTML ( RFC 2557 ). ( dataURI dan MHTML yang ditulis oleh Qin Ge masih direkomendasikan untuk siswa yang belum mengetahuinya). Jika Anda menginginkan jalur absolut dalam CSS, Anda juga dapat menyimpan js. Jika js digunakan secara langsung, secara teoritis mungkin, tetapi biasanya lebih baik mengubah nama kelas js saja.
- flash : Beberapa flash yang relatif kecil, seperti penyimpanan, penyalinan, dll., juga dapat dikemas. Namun, sekarang kita dapat menyelesaikan masalah non-IE. Untuk non-IE, gunakan tautan eksternal.
Berikut adalah contoh pengujian kemasan .
Beberapa detail dan kusut
- Belum tentu masuk akal untuk mengemas semua gambar ke dalam js. Yang dikemas haruslah gambar yang harus digunakan.
Jadi apakah lebih baik gambar yang dikecualikan tersebut dikemas ke dalam paket lain atau langsung menggunakan gambarnya? - Gambar bisa dikompres terlebih dahulu lalu diedit. Alat kompresi gambar yang saya pilih adalah pngout , dan biasanya saya gunakan
-s5
.
Seseorang telah melakukan beberapa tes. Data tidak terkompresi di base64? Mungkin tidak , semua orang dapat membuat penilaian sendiri. - Referensi gambar yang berulang akan sangat besar jika Anda menggunakan dataURI secara langsung, dan gzip sama bodohnya dengan babi dan tidak akan mengompresnya.
Saya memilih untuk menyimpannya sebagai variabel js, sedangkan teman sekelas saya di Taobao menggunakan metode kelas. - MHTML tidak dapat ditampilkan di ie7+/vista karena kurangnya pembatas akhir. Win03sp2 tidak memiliki
Content-Type
dan akan menyebabkan permintaan keamanan. - Haruskah saya memilih untuk mengemas semuanya dalam satu file atau mengemasnya menjadi dua file sesuai dengan tipe MHTML dan dataURI dan mengirim file sesuai dengan ua di server atau membacanya dengan cerdas oleh perpustakaan kelas?
- Ada masalah saat menggunakan dataURI untuk mengkompilasi swf. Dikatakan tidak ada masalah dengan fp8, tapi sekarang fp10.
Solusi solo lainnya adalah mengemas js ke swf, tapi rasanya tidak harmonis.
contoh multibagian/terkait
Memang tidak standar tetapi bisa berjalan. Line break juga sangat penting.
Tipe Konten:multibagian/terkait;batas="_BAIDU_YOUA_BB_YEP"
--_BAIDU_YOUA_BB_YEP
Tipe Konten:gambar/png
Lokasi Konten: logo.png
Pengkodean-Transfer-Konten:base64
...base64...
--_BAIDU_YOUA_BB_YEP
Tipe Konten:gambar/png
Lokasi Konten:nono.png
Pengkodean-Transfer-Konten:base64
...base64...
--_BAIDU_YOUA_BB_YEP--