Hướng dẫn

Nếu bạn lần đầu ghé thăm blog của mình, bạn có thể vào phần hướng dẫn để biết thêm thông tin và cách sử dụng blog này.

Thứ Ba, 26 tháng 10, 2010

Tạo plugin cho jQuery dùng để kiểm tra sự hợp lệ của form (Phần 3)

Trở lại nhiệm vụ lần trước, chúng ta đã tìm hiểu qua những khái niệm: gọi liên hoàn / không liên hoàn, cấu hình dành cho plugin... Hôm nay công việc sẽ khó "nhai" hơn, nào bắt đầu thôi.

Giới thiệu những thẻ tương tác dữ liệu
Trước khi bắt tay vào việc "code kiếc" chúng ta cần biết những phần tử (element) nào cần / được kiểm tra. Hiện tại HTML có những phần tử sau chứa giá trị khả dĩ có thể chuyển dữ liệu về máy chủ hoặc có thể tương tác với người sử dụng:
Trong những thẻ trên, thẻ input có thuộc tính value dùng để nhận / gán giá trị, riêng thẻ hình ảnh input type="image" thì sử dụng thuộc tính src.

Tạo plugin cho jQuery dùng để kiểm tra sự hợp lệ của form (Phần 2)

phần 1, chúng ta đã biết cấu trúc để viết một plugin cho jQuery, phần 2 này mình sẽ trình bày về cách xử lý dựa trên đối tượng jQuery.

Những cách sử dụng liên hoàn và không liên hoàn trong jQuery

Có thể gọi đây là một chuỗi những lệnh gọi phương thức xử lý của jQuery:
jQuery('#myheader').addClass('.hilite');
jQuery('#myheader').text('Hello world !!!');
Ở trên là từng câu lệnh riêng lẽ, ta có thể rút gọn:
jQuery('#myheader').addClass('.hilite').text('Hello world !!!');
2 khai báo trên đều có kết quả như nhau, nhưng lợi điểm thì khác nhau. Khai báo đầu tách riêng từng câu lệnh, điều này khiến cho jQuery phải truy vấn tìm ra tập thẻ thỏa điều kiện 2 lần ứng với mỗi lần gọi. Nhưng ở khai báo sau thì jQuery chỉ cần một lần truy vấn để tìm thẻ và thông tin những thẻ đó được bảo lưu cho những lần gọi tiếp theo sau. Để có thể gọi một chuỗi liên hoàn như khai báo hai, điều cần thiết là ta phải nắm rõ kết quả trả về của một phương thức jQuery, nếu phương thức trả về đối tượng jQuery thì có nghĩa ta có thể gọi liên hoàn, ngược lại thì không:
jQuery('#myheader').attr('href');
jQuery('#myheader').attr('href', 'http://google.com');
Với lệnh dòng 2, phương thức attr với tham số 'href' sẽ trả về giá trị thuộc tính href của thẻ #myheader, như vây ta không thể tiếp tục gọi liên hoàn theo sau câu lệnh này được. Đến dòng 3, phương thức attr có tham số 'href''http://google.com' sẽ thực hiện việc gán giá trị của thuộc tính href của thẻ #myheader, phương thức này trả về đối tượng jQuery, ta có thể gọi liên hoàn. Như bạn thấy đó, cùng một phương thức attr, ở mỗi cách gọi (ngữ cảnh) khác nhau, thì kết quả trả về sẽ khác nhau, chúng ta cần tham khảo tài liệu về jQuery để có thể vận dụng chính xác.

Thứ Hai, 25 tháng 10, 2010

Tạo plugin cho jQuery dùng để kiểm tra sự hợp lệ của form (Phần 1)

Lời mở đầu
jQuery là một thư viện Javascript khá nổi tiếng, thư viện này "bảo kê"  tất cả những thao tác xử lý về thẻ một cách linh hoạt và đơn giản. Ai chưa biết về thư viện này thì mất nửa "cuộc đời", mà biết rồi thì cũng mất thêm nửa "cuộc đời" để tìm hiểu nó, nói cho vui vậy thôi chứ jQuery theo mình là rất tuyệt nhưng không hẳn là "vô đối", ngoài jQuery còn có những "đại gia" như mootool, extJS, prototype... khi có thời gian mình sẽ giới thiệu nhiều hơn về chúng.

Làm sao để viết plugin cho jQuery ?
Viết một "cắm vào" (plugin) cho jQuery khó không ? Theo mình thì đơn giản vô cùng, quan trọng là viết xử lý có phức tạp hay không, chứ viết một cái được gọi là plugin của jQuery thì còn dễ hơn ăn bánh mì.

Chủ Nhật, 24 tháng 10, 2010

Tối ưu hóa website (Phần cuối)

Với phần cuối này, mình xin trình bày về cách tối ưu hóa hình ảnh trong website. Hình ảnh là thành phần quan trọng, được sử dụng khá nhiều trong trang, chính vì vậy bạn cần phải cân nhắc khi sử dụng hình ảnh hợp lý. Tối ưu hình ảnh có những công đoạn sau:

Cách sử dụng hình ảnh
Hình ảnh hiển thị thường thông qua 2 cách, sử dụng thẻ img và sử dụng thuộc tính background. Ở đây mình xin khuyến khích các bạn nên sử dụng thuộc tính background khi có thể, vì những lợi điểm sau:

Dễ thay đổi bằng hình ảnh khác khi cần, chỉ cần thay đổi nội dung CSS là có thể chuyển đổi hình ảnh khác, thay vì phải vào mã HTML dò tìm thẻ IMG và thay đổi thuộc tính src

Có thể tạo hiệu ứng thay đổi khi di chuyển mouse vào thẻ, chỉ cần định thêm style dành cho :hover là ta có thể có 2 trang thái hiển thị khác nhau trên cùng một thẻ, điều này muốn thực hiện trên thẻ IMG phải sử dụng Javascript

Thứ Bảy, 23 tháng 10, 2010

Lớp dạy Javascript trực tuyến

Hình thức / thời gian
Mình sẽ đăng những bài viết lý thuyết Javascript liên tục, các bạn sẽ đọc và tham gia thảo luận, gửi bài tập qua mẫu form ở cuối bài. Sau khi nhận bài mình sẽ xem và phản hồi ý kiến, đồng thời đăng tải lên blog. Thời gian học sẽ bắt đầu từ ngày 01/11/2010

Nội dung
Khóa học sẽ dài hoặc ngắn tùy theo chuyên đề của khóa học, hiện tại mình sẽ gửi mẫu đăng ký và tùy theo kết quả đăng ký mình sẽ quyết định chuyên đề, thời gian của khóa học là gì.

Kết quả
Mình không tham vọng sẽ đem đến cho bạn được những kỹ năng như bạn mong muốn, nhưng trên hết, sẽ là sự cố gắng chia sẻ kiến thức của chính mình để giúp các bạn có một số vốn kiến thức nhất định qua mỗi khóa học. Trong quá trình thảo luận, nếu có những điểm bạn nhận thấy mình truyền đạt không chính xác, hãy góp ý xây dựng bằng cách trình bày nguyên nhân, nội dung sai lạc, có liên kết tham khảo càng tốt, nhằm mục đích hoàn thiện nội dung khóa học.

Chơi xếp kim cương 2 thật đã trên web của bạn

Game xếp kim cương 2 nguyên bản của Popcap
Đối với mỗi người chúng ta, dòng game xếp kim cương của hãng Popcap đã không còn xa lạ nữa. Nhớ lại cái thời người người chơi xếp kim cương, nhà nhà chơi xếp kim cương (hì hì, nói hơi quá nhưng thực ra thì các bạn nữ mê trò này lắm). Hôm nay mình xin trình bày cách cài đặt một game xếp kim cương lên website, blog, forum hoặc bất cứ đâu, miễn là nơi đó có hỗ trợ javascript, vì game này được viết bằng javascript mà.

Thứ Năm, 21 tháng 10, 2010

Tối ưu hóa website (Phần 3)

Xem lại Phần 1, Phần 2

Ở 2 bài trước mình đã trình bày về tối ưu hóa CSS và Javascript, hôm nay mình xin trình bày về tối ưu hóa HTML. HTML là một phần mã không thể thiếu của một trang web, ở bất kỳ đâu cũng có HTML, vì vậy nếu ta tối ưu hóa được HTML là đã cải thiện tốc độ web khá nhiều. HTML như các bạn đã biết, là một ngôn ngữ đánh dấu có cấu trúc, nó có những cú pháp tùy tiện hơn Javascript và CSS, dù bạn có viết sai cú pháp thì nó vẫn có khả năng hiển thị, còn hiển thị "cái gì" thì không xác định được. Để tối ưu HTML gồm có những công việc sau:

Tối ưu cấu trúc sử dụng thẻ
Việc sử dụng thẻ một cách hợp lý, "tiết kiệm", nói chung là càng ít thẻ càng tốt. Ít thẻ thì được lợi gì ? Ít thẻ thì mã ít hơn, trong sáng hơn, dễ hiểu hơn, ít thẻ thì trình duyệt biên dịch nhẹ gánh biên dịch hơn, giảm thiểu trường hợp "cạn" bộ nhớ. Vậy tiêu hoang thẻ là như thế nào ? Xem đoạn mã dưới:
<table class="box">
    <tr>
        <td class="box-header"></td>
    </tr>
    <tr>
        <td class="box-body">Nội dung</td>
    </tr>
    <tr>
        <td class="box-footer"></td>
    </tr>
</table>
"Tình hình" là đoạn mã trên có 7 thẻ, nếu sử dụng một cách khác:

Điều kỳ diệu của đối tượng Date trong Javascript

Lần này mình xin "đổi gió" chút đỉnh. Hôm nay mình xin trình bày về đối tượng Date trong Javascript. Ngày tháng là yếu tố quan trọng, được sử dụng khá nhiều, nên việc tính toán ngày tháng cũng muôn hình vạn trạng.

Khởi tạo một đối tượng Date
var now = new Date();
Với lệnh khởi tạo Date không tham số, hệ thống sẽ trả về ngày hiện tại. Ta cũng có thể khởi tạo đối tượng Date bằng cách chỉ định rõ những tham số theo thứ tự sau: năm, tháng, ngày, giờ, phút, giây:
var vnwomanDay = new Date(2010, 9, 20);
alert(vnwomanDay);
var vnwomanDayAndTime = new Date(2010, 9, 20, 12, 20, 30);
alert(vnwomanDayAndTime);


Có một điểm cần lưu ý, trong Javascript, tháng được tính từ 0 - 11, nghĩa là 0 là tháng 1, 1 là tháng 2 ... Chúng ta phải luôn ghi nhớ điều này để tránh tính toán hoặc hiển thị nhầm.

Tối ưu hóa website (Phần 2)

Xem lại phần 1

Ở phần 1, mình đã trình bày về cách "nén" mã javascript, sang phần này mình sẽ giải quyết tới "anh chàng" CSS.
Vậy CSS có khả năng "nén" được như javascript không ?
Ngoài cách "nén" ra còn có cách nào để tối ưu hóa CSS không ?

Chúng ta sẽ đi vào từng vấn đề trên.
CSS cũng tương tự như javascript, là một dạng văn bản có cấu trúc, mà đã là văn bản thì ta đều có thể "nén" được, tuy nhiên, tỉ lệ nén ở CSS không nhiều, và chỉ có một cách nén duy nhất. Thông thường các trình nén CSS sẽ làm như sau:

Thứ Ba, 19 tháng 10, 2010

Tối ưu hóa website (Phần 1)

Tối ưu hóa là cách làm cho website hoạt động trơn tru hơn, tốt hơn. Nhìn chung mọi người thường hiểu là làm sao cho website của tôi "chạy nhanh". Đôi khi có những định nghĩa tối ưu hóa website tương đương với việc tối ưu hóa đối với bộ máy tìm kiếm (SEO), ở đây mình xin trình bày khía cạnh tối ưu hóa nội dung, tài nguyên website.

Những kiến thức này dựa trên việc tham khảo tài liệu của 2 chương trình Page Speed (anh Goo) và YSlow (anh Yah), mình đã giản lược đồng thời mô tả chi tiết hơn một số khái niệm để các bạn có thể nắm được.

Tối ưu hóa tài nguyên website
Tài nguyên website được kể ở đây chính là: hình ảnh, tập tin javascript, tập tin css, tập tin html. Thông thường ta sử dụng những tài nguyên này và không nghĩ rằng có thể làm gì với nó để cho nó phục vụ website tốt hơn. Việc tối ưu hóa chúng nhằm mục đích cải thiện thời gian tải về của trang web (là làm nhanh lên đó), việc cải thiện này cũng sẽ làm giảm tải phía máy chủ nhưng đôi lúc cũng bắt máy chủ làm việc nhiều hơn.
Related Posts Plugin for WordPress, Blogger...

Hãy nói không với 4T

Hướng dẫn sử dụng chức năng góp ý
Bạn có thể sử dụng những thẻ <b>, <i>, <a>. Để chú thích đoạn mã bạn có thể sử dụng thẻ [code=type]  [/code], với type là những loại mã sau js, css, html. Chú ý: Khi sử dụng thẻ [code=html] bạn cần theo thế những ký tự < , > thành [] hoặc bạn có thể sử dụng bộ chuyển đổi. Những loại mã khác thì bạn thay thế < , > thành &lt;&gt; hoặc bạn cũng có thể sử dụng bộ chuyển đổi