2010-01-04

Энэ вэбийг синхрон бишээр авья

2, 3 жийлийн өмнө хүн болгоны магтан ярьж байсан зүйлсийг одоо л би ярих гэж байна даа. Төдий чинээ хоцорч яваа минь энэ биз дээ. Юуг магтаад байсан бэ гэхээр гэдэг технологи. Энэ нь Asynchronous JavaScript and XML гэсэн үгийн товчлол, гэсэн хэдий ч сүүлийн үед бас Ajax гээд товчлол биш шинэ үг маягаар хэрэглэх болсон нь энэ технологийг шүтэн хэрэглэгчдийн анархи биз. Санаа нь вэб хуудас ачааллаж дууссаны хойно бүхэл бүтэн шинэ хуудас ачаалахгүйгээр сервер дэх програмыг ажиллуулан үр дүнг буцааж аван өмнө ачаалласан хуудсанд харуулна гэдэг дээр тогтож байна. Энэ технологийн одууд гэвэл олон байна, жишээ нь: Google Maps, Writely (Google Docs болсон), GMail гээд олон байна. Тухайлбал, Google Maps хиймэл дагуулаас авсан жижгээс томруугаа 13 ширхэг том зураг олон хуваагдсан байгаагийн аль нэг ачаалласан зургийн зөвхөн хэрэглэгчийн фокуст байгаа хэсгийг л ачааллан харуулж, хэрэглэгч хулганаар зургийг чирэхэд зөвхөн шинэ фокус дахь зургуудыг серверээс нэмж ачааллах гэсэн замаар хурдан ажиллаж байна.

Яг тэр 2, 3 жилийн өмнө нь AJAX стандартчилагдаж байхад нь вэбийн стандандартын W3C-гийн сайтруу орж үзэж байгаад XMLHttpRequest обьектийг хэрэглэж үзэж билээ, ид шид юм шиг л санагдаж байсан. Гэхдээ JavaScript дорвитой хэрэглэхээс хальширч байсан учир тэгэсгээд орхисон юм. Учир нь нэг бичсэн код туршиж байсан вэбийн хөтөч програм дээр ажилаад өөр хөтөч дээр ажиллахгүй гэх мэт олон садаа байлаа. Мөн AJAX-д хамгаалалтын асуудлууд байлаа.

За тэгээд л вэб хийхдээ дандаа сервер талтай код бичээд л байлаа. Тэгсэн мөнгө бүхнийг өөрчлөнө гэгчээр санхүүгийн хямралд ороод ирэхээр яахын аргагүй нэгэн бүртгүүлсэн ажлынхаа ажил олгогчид нэг хоногийн дотор AJAX хэрэглэдэг үнэ хаялцах жижигхэн хэрэглээний програм бичиж үзүүлье гээд хэлчихлээ.

Харин энэ үед AJAX вэб хуудас хийх харьцангуй асар болсон байлаа. Ингээд feeditor.com/bidding хэрэглээний програмыг бичлээ. Хэрэглэсэн технологиудын хувьд гэвэл:

  • Java (Java 1.6; Tomcat 5.5)
  • DWR (Direct Web Remoting)
  • MySQL
  • Dojo Toolkit
  • Scriptaculous
  • Prototype

Ингээд кодуудыг (war + build.xml) нь эндээс татаж авч болно шүү. Харин эндээс өгөгдлийн сангийн кодыг авч болно.

Надаар кодуудыг нь тайлбарлуулсан бичлэг бичүүлмээр байвал бичлэгт санал сэтгэгдэлээ бичээрэй.