VI .H n gd nti u tp tin JavaScript trong mư ngu nm NukeViet 3.x
1. Các ki ut iu JavaScript
Có th chia các công c giúp ng i l p trình gi m kích th c t p tin JavaScript thành 3 ki u, c n c vào ph ng pháp mà các công c này s d ng:
1.1. Ki u RegExp:
Xóa các chú thích, các kho ng tr ng c ng nh m t s “rác” khác trong mư ngu n nh vào các bi u th c chính quy (Regular Expressions). i di n tiêu bi u cho ph ng pháp này là công c JSMin. D i đây là m t vài website cung c p công c ki u này:
http://fmarcia.info/jsmin/test.html
http://www.crockford.com/javascript/jsmin.html
1.2. Mã hóa ki u Gzip n a v i:
Nguyên lý c a nó là nén t p tin JavaScript b ng ph ng pháp nén đ n gi n (nén v i khóa đ nh ngh a). Khi hi n th trên trình duy t, n i dung b mư hóa s đ c gi i mư b ng hàm biên d ch eval. Nó đ c g i là n a v i b i s d ng ph ng pháp nén gzip m c đ th p. Ki u mư hóa này không đ c khuy n khích s d ng các website có ch đ nén gzip m c đ nh cho các t p tin JavaScript (nén 2 l n, khi n dung l ng c a n i dung đ c đ c còn l n h n so v i n i dung c a t p tin nguyên g c). Ngoài ra, trình duy t khi đ c các t p tin này s lâu h n bình th ng vì ph i th c hi n thêm thao tác “gi i mư”. Công c nén n i ti ng m t th i Dean Edwards thu c tr ng phái này (http://dean.edwards.name/packer/).
B n có th truy c p website http://jscompress.com đ th y đ c s khác nhau c a 2 ki u t i u t p tin JavaScript nêu trên.
1.3. Gi m kíchth c t p tin d a trên công ngh t i u c u trúc mã ngu n và rút g n các ký t .
MÔ T K THU T - MÃ NGU N M NUKEVIET v3.x http://nukeviet.vn ây đ c coi là ph ng pháp tân ti n nh t và đ c ShrinkSafe, YUI Compressor, Google Closure Compiler s d ng. Tr c khi th c hi n ch c n ng t i u, các công c này đ c cây cú pháp c a mư ngu n (syntax tree), d a trên k t qu đ t đ c ti n hành thay tên c a các bi n c c b b ng tên khác ng n g n h n. Cu i cùng, v i cây th m c có đ nh d ng m i này, chúng t i u mư ngu n b ng cách xóa các chú thích, các kho ng tr ng, vi t g n các s nguyên (1000 thành 1E3, 20000 thành 2E4).
Google Closure Compiler c ng nh các công c t i u th h m i khác không s d ng các bi u th c chính quy và không ti n hành nén t p tin. Bên c nh đó, nó v t tr i h n so v i ShrinkSafe và YUI Compressor ph ng pháp t i u. Trong khi YUI Compressor s d ng ph ng pháp c c b , Google Closure Compiler ti n hành phân tích mư ngu n m t cách toàn di n, l n h n nhi u so v i ý ngh a c a t “t i u”, cho ra m t k t qu đ c coi là t t nh t th i đi m hi n nay.
Công c tr c tuy n Google Closure Compiler đ c cung c p t i đây: http://closure-compiler.appspot.com/home
2. Cách s d ng Google Closure Compiler t i u JavaScript cho NukeViet 3:2.1. T i u cho các l p trình viên.