Hiển thị các bài đăng có nhãn For Vietnamese. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn For Vietnamese. Hiển thị tất cả bài đăng
Hiện tại thì vnexpress đã thay đổi một phần cấu trúc site và dữ liệu của họ. Vì thế mà module thông tin thời tiết trước đã không còn. Mình đã cố gắng truy cập tới services mới đó nhưng vẫn chưa tìm thấy chính xác đường dẫn của nó nên chúng ta không tùy chỉnh được số lượng tỉnh thành phố. Để sử dụng module này đầu tiên chúng ta cần khai báo script cho nó.

<script language="javascript" type="text/javascript" src="tygia.js" />
    <script language="javascript" type="text/javascript" src="http://st.f2.vnecdn.net/j/v3/jquery-1.7.1.min.js"></script>
    <script language="javascript" type="text/javascript">
         var interactions_url = 'http://interactions.vnexpress.net';
         var domain_image = 'http://st.f2.vnecdn.net/i/v3';
         var base_url = 'http://vnexpress.net';
         var css_url = 'http://st.f2.vnecdn.net/c/v4';
         var img_url = 'http://st.f2.vnecdn.net/i/v3';
         var image_cloud = 'http://l.f29.img.vnecdn.net';
         var PAGE_FOLDER = 1;
         var PageHot = 0;
         //setTypingMode(1);
         document.domain = 'vnexpress.net';
    </script>
    <script language="javascript" type="text/javascript" src="http://st.f2.vnecdn.net/j/v3/jquery-1.7.1.min.js"></script>
    <link href="style.css" rel="stylesheet" type="text/css" />
Bộ thư viện jquery thì chúng ta có thể download, import từ google đều được. Ở đây mình lấy luôn link từ server của vnexpress. File tygia.js chúng ta cũng có thể lấy link từ vnexpress cho tiện việc sau này họ có thể update module này. Bên trong file tygia.js là các hàm về thời tiết giá vàng, tỷ giá, chứng khoán, nếu bạn không muốn các phần đó thì có thể xóa đi. File tygia.js và style.css mình sẽ đính kèm với source.

Trong file style.css là style cho module nhỏ này. Bạn có thể tùy chỉnh nó theo ý mình.

.content-left{margin:10px 10px 0px 0px; float:left;width:300px;overflow:hidden}
.Hrow{margin:0px; padding:0px; list-style-type:none; background:#eefef5; width:80px;}
.Hrow li{font:11px arial; color:#000; width:70px; margin:0px 0px 5px; cursor:pointer;padding:0px 0px 0px 10px;}
.img-weather1{padding-right:4px}
.content-left .box-item{width:100%; margin:0px 0px 10px; float:left; overflow:hidden}
.hideCity{float:left; padding:0px 15px 0px 0px; display:none;width:60px; position:absolute; top:25px; left:300px; z-index:3;}
.content-left .box-item ,.boxtvsi{overflow:hidden}
.img-Do{padding:6px 6px 0px 0px; float:left;}
.spanNumDo{float:left; font:bold 14px tahoma; color:#000; padding:5px 10px 0px 0px;}
.txt-Weather{font:11px arial; color:#000; padding:7px 0px 0px; float:left;}
#txt-City{font:bold 12px tahoma; color:#000; padding:5px 0px 0px; float:left;width:70px; text-align:right;}
.H-row{ background:url(images/rowWeather.gif) no-repeat 3px 12px; width:7px; height:4px; padding:8px 3px; float:left; cursor:pointer;}
.divRightW{float:right; padding:4px 6px 0px 0px;}
.H-row{ background:url(images/rowWeather.gif) no-repeat 3px 12px; width:7px; height:4px; padding:8px 3px; float:left; cursor:pointer;}
 Cái này là style của vnexpress và mình có tùy chỉnh lại 1 chút cho phù hợp như đường link ảnh và vị trí của thẻ div.
Trong phần code thì cái này là hoàn toàn thuần html.

<div class="content-left">
        <div class="box-item" id="boxweather">
            <div class="weather">
                <span class="spanNumDo" id="img-Do">&nbsp;</span> <span class="txt-Weather" id="txt-Weather">
                    &nbsp;</span>
                <div class="divRightW">
                    <div id="txt-City" style="cursor: pointer;">
                        &nbsp;</div>
                    <div class="H-row">
                    </div>
                </div>
            </div>
            <div class="hideCity" id="hideCity">
                <ul class="Hrow" style="" id="ulWeather">
                </ul>
            </div>
        </div>
    </div>
 Sau khi đã có phần div chưa giao diện chúng ta sẽ gọi 1 đoạn script nhỏ, đoạn script này có chức năng gọi đến các function được định nghĩa trong file tygia.js

  <script type="text/javascript" language="javascript">
   $(document).ready(function () {
       tygia.getWeatherData();
       tygia.run();
   });
    </script>
 Save và run thôi :D. Mình sẽ demo luôn trên bài này! Trên thực tế có rất nhiều site của Việt Nam có cung cấp dịch vụ thông tin thời tiết các bạn có thể tham khảo thêm, một số trang nước ngoài thì cung cấp hẳn đường link service miễn phí để chúng ta truy cập và sử dụng. Download source module thông tin thời tiết tại đây. Chúc các bạn thành công.
module thông tin thời tiết
Thêm chú thích

p/s: èo cái style của module này nó bị trùng với 1 số style trong template của blog nên hiển thị chưa được chính xác lắm. Các bạn hãy xem lại trong file source được đính kèm nha.

   
html các thẻ cơ bản





Trong bài trước mình đã giới thiệu qua một chút cơ bản về HTML, bài này mình sẽ giới thiệu về các thẻ cơ bản thường gặp trong định dạng văn bản. Các thẻ này rất hữu ích trong việc hiển thị văn bản.




1.  Thẻ Heading.

Các thẻ heading được định nghĩa từ thẻ <h1> đến <h6> với size giảm dần.

<h1>Webzoomz.info</h1>
<h2>Webzoomz.info</h2>
<h3>Webzoomz.info</h3>
<h4>Webzoomz.info</h4>
<h5>Webzoomz.info</h5>
<h6>Webzoomz.info</h6>

Webzoomz.info

Webzoomz.info

Webzoomz.info

Webzoomz.info

Webzoomz.info
Webzoomz.info
Các thẻ heading được dùng để làm tiêu đề vì thế bạn nên tránh dùng chúng chỉ để làm cho một đoạn văn bản nào đó to hơn, thay vì các thẻ heading này bạn hãy dùng các thẻ định dạng khá để làm việc đó.
Thẻ H1 thường được sử dụng để hiển thị những tiêu đề chính và sau đó các thẻ H2,H3... dùng để hiển thị các đề mục con.

2. Các thẻ mức đoạn.


a. Thẻ address

Thẻ address được dùng để hiển thị các thông tin như tác giả, địa chỉ,chữ kí...

<address>
Written by <a href="mailto:webmaster@webzoomz.info">Le Thanh Tung</a>.<br>
Visit us at:<br>
webzoomz.info<br>
Hải Phòng
</address>
 b. Thẻ blockquote
Thẻ blockquote được sử dụng cho những phần trích dẫn và được hiển thị thụt vào đầu dòng.

<p>Đây là một ví dụ về sử dụng thẻ blockquote.</p>
<blockquote style="color:red">
   Nội dung cần trích dẫn ở
đây.
</blockquote>
<p>Đây là một ví dụ về sử dụng thẻ blockquote.</p>

Đây là một ví dụ về sử dụng thẻ blockquote.
Nội dung cần trích dẫn ở đây.
Đây là một ví dụ về sử dụng thẻ blockquote.

c.Thẻ pre
Khi chúng ta gõ văn bản trong code HTML và không chỉ định dạng cho nó thì lúc biên dịch ra và chạy trên trình duyệt thì chúng sẽ được định dạng lại. Nếu chúng ta muốn hiển thị văn bản theo định dạng mà chúng ta muốn và xác định từ trước trong code HTML thì chúng ta có thể sử dụng thẻ pre.

<p>Đây là một
đoạn văn bản
  không sử dụng thẻ pre.</p>
<pre> Đây là một
đoạn văn bản
sử dụng thẻ pre</pre>

Đây là một đoạn văn bản không sử dụng thẻ pre.

Đây là một


đoạn văn bản


sử dụng thẻ pre


3. Thẻ khối(section) div, span

a. Thẻ div.


Thẻ div là thẻ được sử dụng khá nhiều trong việc chia tài liệu thành những sections. Nó được sử dụng để nhóm nội dung lại với nhau.


<div style="color:#00A803">
  <h3>Khối văn bản 1</h3>
  <p>Nội dung văn bản 1</p>
</div>
<div style="color:#8000A8">
  <h3>Khối văn bản 2</h3>
  <p>Nội dung văn bản 2</p>
</div>
<div style="color:#A80010">
  <h3>Khối văn bản 3</h3>
  <p>Nội dung văn bản 3</p>
</div>

Khối văn bản 1

Nội dung văn bản 1

Khối văn bản 2

Nội dung văn bản 2

Khối văn bản 3

Nội dung văn bản 3

b.Thẻ span


Tương tự như thẻ div nhưng phạm vi của thẻ span trong việc nhóm khối văn bản thì nhỏ hơn. Nó chỉ được dùng để nhóm một đoạn ngắn văn bản(thường là các kí tự và cụm từ có nội dung cần nhấn mạnh).


<p>Bài viết này sẽ giới thiệu về các thẻ <span style="color:#A80007;font-size:18px">cơ bản</span> thường gặp và hay sử dụng trong <span style="color:#228624;font-weight:bold">định dạng văn bản</span> của HTML</p>

Bài viết này sẽ giới thiệu về các thẻ cơ bản thường gặp và hay sử dụng trong định dạng văn bản của HTML.

4. Thẻ định dạng kí tự

ThẻMô tảVí dụ
Thẻ Bin đậmwebzoomz.info
Thẻ TTCố định độ rộng văn bảnwelcome to webzoomz.info
Thẻ SUPChỉ số trênn10
Thẻ SUBChỉ số dướiH2O
Thẻ EMNhấn mạnh văn bảnChia sẻ đam mê
Thẻ CODESử dụng trong trích dẫn(quote)code3x+5y=20
Thẻ VARSử dụng cho các biến trong chương trìnhxyz
Thẻ CITESử dụng cho các trích dẫn và tham chiếuWebzoomz.info - Chia sẻ đam mê
html cơ bản
Mấy tuần trước có một bạn gửi mail cho mình và muốn mình hướng dẫn qua một chút về thiết kế web cơ bản. Mặc dù đã có nhiều link hướng dẫn và tài liệu để học nhưng nhiều chỗ vẫn còn khó hiểu nên mình quyết định làm một series ngắn để giới thiệu cơ bản về thiết kế web: HTML cơ bản, CSS cơ bản, Javascript cơ bản. Các bài trong series mình sẽ làm ngắn gọn, cơ bản, chú trọng và một số điểm chính vì các tài liệu cơ bản cũng nhiều nhưng diễn giải khá nan man.


HTML là nền tảng cơ bản nhất mà bạn cần phải nắm được trước khi học thiết kế web. Nó là một ngôn ngữ lập trình web tĩnh cơ bản. HTML là viết tắt của Hyper Text Markup Language(ngôn ngữ đánh dấu siêu văn bản). Ngôn ngữ này sử dụng các tag(thẻ) để mô tả trang web. Có khá nhiều những phần mềm html editor giúp bạn có thể lập trình được html thậm chí dùng notepad cũng có thể làm được(nhưng khá cùi ;)) ). Bạn hãy chọn một phần mềm nào đó, ở đây mình giới thiệu một phần mềm đó là  Dreamweaver. Đây là một editor rất tốt được hỗ trợ nhiều và có thể lập trình nhiều ngôn ngữ web khác như ASP, ASP.NET, PHP...

1. Cấu trúc tài liệu HTML.
Cấu trúc của một tài liệu HTML
<html>
     <head>
             <title>
             </title>
     </head>
     <body>
            các thẻ trình bày nội dung khác trong đây.
     </body>
</html>
- Tài liệu luôn bắt đầu bằng thẻ <html> và kết thúc bằng </html>. Bạn lưu ý, mỗi thẻ mở đều có một thẻ đóng tương ứng đi kèm.
- Trong một số trường hợp không cần thẻ đóng như các thẻ <p>. Và trong các trường hợp khác thiếu thẻ đóng trình duyệt vẫn hiển thị bình thường. Nhưng điều này là không tốt và nên tránh.
-Trong thẻ html sẽ có <head></head>, thẻ này là thẻ không bắt buộc nhưng nên có, và thẻ <body></body> đây là thẻ bắt buộc và nó là phần chính của tài liệu html.
- Để khai báo việc tài liệu hợp chuẩn theo tiêu chuẩn của w3c thì chúng ta có dòng khai báo thẻ doctype trên cùng của tài liệu html.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

2. Thành phần thẻ head
- Trong thẻ head có chứa các thẻ meta dùng để mô tả về nội dung tổng quan của tài liệu. Ví dụ:

<meta content='description about page' name='description'/>
<meta content='keyword' name='keywords'/>
<meta content='index, follow' name='robots'/>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
- Thẻ title được nằm trong thẻ head và chứa title của trang đó. Thẻ title khá quan trọng trong việc SEO nên thẻ này các bạn đừng quên nha.
<title>welcome to webzoomz.info </title>
- Thẻ script: việc ứng dụng các script : javascript, jquery...vào trang web hiện nay là rất cần thiết và để có thẻ sử dụng chúng thì chúng ta có thể khai báo trong thẻ head (điều này không bắt buộc, chúng ta có thể khai báo trong body cũng được).
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
 - Thẻ style: để làm cho trang web trở lên sinh động hơn thì việc ứng dụng CSS là không thể thiếu. Thẻ này tương tự với thẻ script, có thể khai báo trong thẻ head hoặc trong body đều được.
<style type="text/css">p{ color: #3e4ede};</style>
 - Thẻ link: thẻ link là một liên kết tới một file bên ngoài. 
<link type='text/css' rel='stylesheet' href='bundle.css' />
 3. Body.
Thẻ body chứa các thành phần chính của trang web. Có rất nhiều thẻ được ứng dụng trong body để thể hiện nội dung trang web như <div>, <p>, <a>....

4. Các thành phần khác.
Trong một tài liệu HTML có thể có rất nhiều những tag và nội dung. Để ghi nhớ và phân biệt nội dung trong các code html đó chúng ta cần đến những thẻ comment(chú thích).
<!-- comment content in many lines -->
// comment on one line

seo subdomain và subfolder
Blog webzoomz đã ngừng hoạt động cũng khá lâu rồi và từ bây giờ blog sẽ hoạt động trở lại để mừng giáng sinh và năm mới ;)). Mình cũng chẳng biết bắt đầu lại thì nên làm từ đâu nữa, thôi thì chủ để SEO là chủ để đầu tiên trên blog nên mình sẽ bắt đầu một bài mới từ chủ đề này.
Chắc hẳn mọi người nghe tên chủ đề bài viết này cũng đoán được phần nào nội dung của bài viết. Subdomain và subfolders đây là những khái niệm rất quen thuộc với những webmaster và các bạn yêu thiết kế web. Nhưng nhiều bạn trong chúng ta vẫn chưa hiểu rõ về cách SEO với subdomain và subfolder. Liệu subdomain và subfolder có ảnh hưởng như thế nào đến việc SEO của trang web? Bài viết này mình xin chia sẻ một chút hiểu biết ít ỏi về vấn đề này.

1. Vấn đề SEO với subdomain.

Subdomain hay còn được gọi là tên miền phụ hay tên miền thứ cấp. Nó được tạo ra từ một root domain. Các subdomain có dạng giống như: thietkeweb.webzoomz.info... Với một root domain các bạn có thể tạo rất nhiều các subdomain khác nhau. Nhưng khi seo một website với địa chỉ là một subdomain thì nó có ảnh hưởng đến site chính của bạn hay không?

Ưu điểm:
- Subdomain sẽ có rank riêng và rank của các từ khóa cũng vậy.Ví dụ 2 subdomain của trang zing.vn:
Trang mp3.zing.vn có pagerank 6 và trang me.zing.vn có pagerank 5 và 2 subdomain này không hề ảnh hưởng tới pagerank của nhau. Chúng là những thành phần riêng biệt.
- Các subdomain sẽ không ảnh hưởng đến domain chính khi domain chính có pagerank cao.
- Các subdomain được google coi như là một external link. Điều này rất có lợi cho việc seo từ khóa vì chúng được coi như là những backlink.
- Quá trình index tốt hơn và nhanh hơn.

Nhược điểm:
- Trước kia việc tạo subdomain để làm các site con thì subdomain được hưởng lợi khá nhiều từ rank của domain chính nếu domain chính có pagerank cao. Nhưng hiện tại điều này đã không còn nữa.
- Các subdomain sẽ lâu lên pagerank nếu chúng mới được tạo và đi vào hoạt động.
- Nếu có nhiều subdomain thì việc quản lí và cấu trúc sẽ mất thời gian hơn. Ngoài ra nếu sử dụng subdomain như một từ khóa để seo thì đòi hỏi cần phải có Premium DNS hỗ trợ wildcard (nhưng các bạn chắc không cần lo điều này vì hiện này hầu hết các nhà cung cấp đều hỗ trợ cái này).

2. Vấn đề SEO với Subfolder.
Subfolder là những directories đi kèm sau địa chỉ domain. Chúng có dạng như là webzoomz.info/seo/...
Việc ứng dụng subfolder trong việc seo cũng có những ưu điểm và nhược điểm riêng.

Ưu điểm:
- Các từ khóa được hưởng rank từ site chính. Điều này rất có lợi nếu pagerank của site chính cao.
- Việc quản lí và cấu trúc nhiều subfolder sẽ dễ dàng hơn là quản lí nhiều subdomain.

Nhược điểm:
- Thường gặp vấn đề trong việc index nếu có quá nhiều subfolder và subfoder lồng nhau.
- Giá trị pagerank sẽ giảm dần theo tầng subfolder. Càng nhiều subfolder và subfolder lồng nhau thì pagerank càng thấp. Ví dụ:
    +) domain.com <= pagerank 4.
    +) domain.com/subfolder1/ <= pagerank 3 hoặc thấp hơn.
    +) domain.com/subfolder1/subforder2/ <= pagerank 2 hoặc thấp hơn
- các subfolder sẽ được google tính là internal link và không được coi như những backlink.

3. Nên chọn seo subdomain hay subfolder.
Cả 2 đều hỗ trợ cho việc seo khá tốt nhưng mỗi cái đều có những ưu nhược điểm riêng. Tùy theo khả năng và nội dung của site để chọn một loại thích hợp. Theo mình thì nên chọn theo hướng seo với subdomain. Có khá nhiều site đang seo theo subfolder đã chuyển sang seo subdomain bởi những lợi điểm thiết thực hơn của nó. Và đặc biệt google cũng đang rất coi trọng việc seo subdomain.

Đã rất lâu rồi mình mới lại có thời gian để quay lại blog. Cũng nhiều việc quá nên không thể viết bài thường xuyên như những ngày đầu. Hôm nay dọn dẹp máy mới thấy mình hãy còn một ít video trên blog gocvuiit cũ ngày xưa của mình, nên mình quyết định post lên blog này. Hy vọng video có thể giúp các bạn chưa biết về ASP.NET hiểu thêm một chút về ngôn ngữ này. Video này mình xin giới thiệu cho các bạn một chút cơ bản về đối tượng Application. Đây là một đối tượng cũng thường được sử dụng nhiều trong lập trình asp.net.


tai lieu hoc asp.net tieng viet
Ngày nay web đang phát triển rất nhanh và lan sâu vào cuộc sống của chúng ta. Để làm nên được điều đó thì điều quan trọng là công nghệ để phát triển web. Mình và các bạn những "thần dân của IT" đều đã chọn cho mình những hướng đi riêng. Rất nhiều những công nghệ phát triển web đang rất phát triển và nếu bạn chọn con đường lập trình web thì bạn phải chọn cho mình một công nghệ để theo đuổi. Nếu bạn nào theo đổi ASP.NET thì mình xin giới thiệu một ít tài liệu để các bạn làm hành trang trên con đường học lập trình web.

Tài liệu này có cả tiếng anh và tiếng việt nên bạn có thể đọc và tham khảo thêm sau giờ học trên lớp hoặc các bạn cũng có thể dùng để tự học.

Tài liệu học asp.net tiếng việt + tiếng anh

Còn đây là bộ CD học ASP.NET của Aptech. Mình từng học Aptech và thấy rằng bộ CD này cực kì hữu ích cho dù ASP.NET trong đó chỉ là 2.0 nhưng nó là nền tảng rất tốt để bạn nắm bắt với các kiến thức cơ bản và nó cũng không khác xa so với công nghệ 3.0,3.5 và 4.0 bây giờ. Các bạn lưu ý CD này hoàn toàn bằng tiếng Anh nên bạn nào có thể đọc và dịch được thì nên download về nha ;))

Begin ASP.NET
Database Handling ASP.NET
Advance Feature of ASP.NET
Programming Web Service in .NET

Một số trang web học asp.net
Đây là trang web chính thức của ASP.NET: asp.net. Nếu tiếng anh của bạn kha khá thì có thể vào forum trong này trao đổi và thảo luận.
Còn đây là forum về asp.net mình thấy là rất hữu ích các bạn có thể tham khảo và học hỏi rất nhiều từ mọi người trong forum: http://forum.aspvn.net/
jquery ajax phuong thuc trang thai
Tiếp theo loạt bài về Jquery Ajax nào ^_^ !  Hôm qua mình có giới thiệu sơ qua một chút về phương thức post trong jquery ajax. Hôm nay mình xin tiếp tục với một vài các phương thức trạng thái ajax. Các phương thức này bao gồm có: ajaxComplete(), ajaxError(), ajaxSend(), ajaxStart(), ajaxStop(), ajaxSuccess().
Chúng ta sẽ cùng tìm hiểu một chút về chức năng của các phương thức này.
ajaxStart(): chỉ ra hàm được thực thi khi ajax request được bắt đầu.
ajaxStop(): chỉ ra hàm được thực thi khi tất cả các ajax request đã hoàn thành.
ajaxComplete(): chỉ ra hàm được thực thi khi ajax request hoàn thành.
ajaxError(): chỉ ra hàm được thực thi khi ajax request có lỗi.
ajaxSend(): chỉ ra hàm được thực thi trước khi ajax request được gửi đi.
ajaxSuccess(): chỉ ra hàm được thực thi khi ajax request hoàn thành thành công.
Bây giờ mình sẽ làm một ví dụ để tổng hợp tất cả những phương thức trên.
Giả sử chúng ta có một body gồm các phần tử sau:

<div id="main"></div>
<button id="click">Go To Ajax</button>
<div id="start" style="display:none"><strong style="color:#0055A8">Loading... please wait!</strong></div>
<div id="stop" style="display:none"><strong style="color:#A80007">Stopped!</strong></div>
<div id="success" style="display:none"><strong style="color:#00A803">Success!!!</strong></div>
<div id="error" style="display:none"><strong style="color:#A80010">Error!!!</strong></div>
<div id="complete" style="display:none"><strong  style="color:#9D00A8">Completed ajax!</strong></div>
<div id="send" style="display:none"><strong style="color:#A86400">Prepare to send!!!</strong></div>
Một div main để chứa thông tin load được. Một button để kích hoạt event. Và các div để hiện thị trạng thái, mình đã đặt tên theo nội dung trạng thái mà chúng sẽ trải qua.
Còn đây là phần script mà chúng ta sẽ sử dụng:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script language="javascript" type="text/javascript">
        $(document).ready(function () {
            
            $("#main").ajaxStart(function () {
                $("#start").css("display", "block");
            });
            $("#main").ajaxComplete(function () {
                
                $("#complete").css("display", "block");
            });
            $("#main").ajaxSend(function () {
                $("#send").css("display", "block");
            });
            $("#main").ajaxStop(function () {
                $("#stop").css("display", "block");
            });
            $("#main").ajaxSuccess(function () {
                $("#success").css("display", "block");
            });
            
            $("#main").ajaxError(function () {
                $("#error").css("display", "block");
            });
            $("#click").click(function () {
                $("#main").load("content.txt");
            });

        });
    </script>
Đây là đoạn script để chúng ta hiển thị các div trên. Khi chúng ta bắt đầu chạy thì các trạng thái của ajax sẽ lần lượt được hiện ra, để thấy rõ quá trình này thì bạn nên để file content.txt có kích thước lớn một chút để làm chậm lại quá trình đó để chúng ta có thể nhìn thấy rõ hơn. Đây chỉ là một ví dụ mang tính chất demo cho các bạn hiểu. Hi vọng là các bạn có thể hiểu thêm một chút về các phương thức này trong ajax. Chúc các bạn thành công!
tao chatbox cho blog va web ca nhan
Chắc hẳn bạn đã từng nhìn thấy chatbox ở đâu đó trên những blog hoặc web cá nhân mà bạn từng ghé qua. Có một chatbox sẽ làm cho blog hoặc web cá nhân của bạn trở lên chuyên nghiệp hơn và cũng tạo ra thêm tính năng cho người dùng khi ghé qua blog của bạn. Với chatbox bạn cùng visitors hoàn toàn có thể trao đổi trực tiếp với nhau trên blog mà không cần phải thông qua các comment. Bài viết này mình xin giới thiệu một số chatbox đơn giản để bạn có thể ứng dụng vào blog hoặc web cá nhân của mình.

Chatbox 1: Đây là chatbox mình từng thấy trên một số blog có ứng dụng sau đó thì đã viewsource và xem được.
Đây là style cho chatbox, bạn hãy copy và đặt vào trong thẻ head:

<style type='text/css'>
.gb_fixed{position:fixed;top:30px;right:0px;z-index:+10;}
* html .gb_fixed {position:relative;}
#hidden_gb2 {
display:none;
border:4px solid #bf3989;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
background:#fff;
padding:0 3px 3px 3px;
}
</style>
 Đây là phần code của trong thẻ body:

<div class='gb_fixed'>
<table cellpadding='0' cellspacing='0' id='hidden_gb2'>
<tr><td><div><a href='javascript:void(0)' onclick='gb_showHideGB()'><b><center>[ Đóng Chat Box ]</center></b></a></div>
Code chatbox ở đây</td></tr></table></div>

<script type='text/javascript'>

    var gb_obj = document.getElementById("hidden_gb2");
    var gb_finish = false;

    function gb_setInitBehaviour() {
        gb_obj.isHidden = true;
        gb_setOpacity(gb_obj, "0.01");
    }
    function gb_setOpacity(obj, opacity) {
        opacity = opacity.substr(0, 4);
        obj.style.opacity = opacity;
        obj.style.filter = "alpha(opacity=" + (Math.floor(parseFloat(opacity) * 100)).toString() + ")";
        //writex(opacity);
    }
    function gb_showGB() {
        gb_obj.style.display = "block";
        gb_changeOpacityTo(1, "");
        gb_obj.isHidden = false;
    }
    function gb_hideGB() {
        gb_changeOpacityTo(0.01, "gb_obj.style.display = \"none\"");
        gb_obj.isHidden = true;
    }
    function gb_changeOpacityTo(fin, funcStr) {
        var init = parseFloat(gb_obj.style.opacity.substr(0, 4));
        var d = init <= 0.2 ? 0.04 : init <= 0.6 ? 0.08 : 0.20;
        var m = fin > init ? 1 : -1;
        var opacity = init + d * m;
        if ((fin - opacity) * (fin - init) < 0) { opacity = fin; }
        gb_setOpacity(gb_obj, opacity.toString());
        if (opacity != fin) { setTimeout("gb_changeOpacityTo(" + fin.toString() + ", '" + funcStr + "')", 50); }
        else { eval(funcStr); }
    }
    function gb_showHideGB() {
        if (gb_obj.isHidden) { gb_showGB(); }
        else { gb_hideGB(); }
    }
    function writex(str) {
        document.getElementById("wx").innerHTML += str + " ";
    }
    gb_setInitBehaviour();

</script>

<div class='gb_fixed' style='z-index:+5'>
<a href='javascript:void(0)' onclick='gb_showHideGB()'>
<img border='0' src='http://goo.gl/Y4jua'/>
</a></div>
Bạn có thể vào các trang cung cấp dịch vụ chatbox miễn phí và get code của họ rồi paste vào chỗ dòng chữ màu đỏ. Bạn có thể vào cbox.ws , sbox.ws, myshoutbox.com, chatango.com. Mình đã đăng kí một chatbox trên cbox vào đây là đoạn code mình lấy được.

<!-- BEGIN CBOX - www.cbox.ws - v001 -->
<div id="cboxdiv" style="text-align: center; line-height: 0">
<div><iframe frameborder="0" width="200" height="305" src="http://www7.cbox.ws/box/?boxid=565567&amp;boxtag=xx02bd&amp;sec=main" marginheight="2" marginwidth="2" scrolling="auto" allowtransparency="yes" name="cboxmain7-565567" style="border:#ababab 1px solid;" id="cboxmain7-565567"></iframe></div>
<div><iframe frameborder="0" width="200" height="75" src="http://www7.cbox.ws/box/?boxid=565567&amp;boxtag=xx02bd&amp;sec=form" marginheight="2" marginwidth="2" scrolling="no" allowtransparency="yes" name="cboxform7-565567" style="border:#ababab 1px solid;border-top:0px" id="cboxform7-565567"></iframe></div>
</div>
<!-- END CBOX -->
Và mình đã thử nghiệm đoạn code này trên trang này. Bạn có thể nhìn sang bên.
Chatbox này có ưu điểm là nhanh và giao diện có vẻ mượt hơn giao diện của các chatbox mà các trang chatbox free cung cấp cho chúng ta. Nhưng nó có một nhược điểm nhỏ là bạn phải kích vào nó để mở nó ra và phải đóng tắt lại khi bạn không muốn dùng nữa. Mình nghĩ cái này cũng không phải điều gì quá lớn có thể bỏ qua được. Nếu bạn muốn nó ẩn hiện thì hãy thêm các event hover và onblur để nó tự động ẩn hiện theo ý muốn.


Chatbox 2: Ngoài cách tự tạo một style riêng cho chatbox của mình thì bạn cũng có thể dùng style của các trang cung cấp chatbox tool free. Giao diện tuy khó chỉnh hoặc cũng có thể không chỉnh được. Nhưng nếu bạn không rành về cách chỉnh style thì cũng có thể dùng style chatbox của họ. Đây là chatbox mình đã đăng kí trên chatango.com. 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script id="sid0010000008922765662">    (function () { function async_load() { s.id = "cid0010000008922765662"; s.src = 'http://st.chatango.com/js/gz/emb.js'; s.style.cssText = "width:250px;height:360px;"; s.async = true; s.text = '{"handle":"webzoomzchatbox","styles":{"b":60,"f":50,"l":"999999","q":"999999","r":100,"s":1}}'; var ss = document.getElementsByTagName('script'); for (var i = 0, l = ss.length; i < l; i++) { if (ss[i].id == 'sid0010000008922765662') { ss[i].id += '_'; ss[i].parentNode.insertBefore(s, ss[i]); break; } } } var s = document.createElement('script'); if (s.async == undefined) { if (window.addEventListener) { addEventListener('load', async_load, false); } else if (window.attachEvent) { attachEvent('onload', async_load); } } else { async_load(); } })();</script>
Chatbox kiểu này có chút nhược điểm là bạn khó chỉnh style mặc dù nhà cung cấp có cho bạn chọn và chỉnh style khi bạn đăng kí. Và một nhược điểm của loại này là hơi chậm 1 chút do bạn phải load 1 script khá nặng. 
Hi vọng với 2 loại chatbox trên bạn có thể tô điểm thêm cho blog hoặc web cá nhân của mình đẹp hơn. Chúc các bạn thành công ^_^!

phuong thuc post jquery ajax
Mình xin tiếp tục với series bài về jquery đơn giản đang còn dang dở. Những bài viết trước mình đã nói qua một chút về một vài phương thức ajax trong jquery ajaxphương thức get trong jquery ajax. Bài viết này mình sẽ nói thêm về một phương thức khác cũng có các chức năng gần giống với 2 phương thức trên đó là phương thức post trong jquery ajax
Phương thức post() là phương thức dùng để load dữ liệu từ server thông qua Http Post request.
Cú pháp: $(selector).post(url,data,success(response,status,xhr),dataType)
 url: địa chỉ request được gửi đến.(bắt buộc)
data: dữ liệu được gửi kèm với request được gửi đến server.(cái này là tùy chọn)
success: hàm được thực thi khi mà request được gửi đi thành công( tùy chọn)

  • response: chứa kết quả trả về từ request được gửi đi.
  • status: chỉ ra trạng thái của request: success, error, notmodified, timeout...
  • xhr: chứa đối tượng XmlHttpRequest.
dataType: Tùy chọn. Nó chỉ ra loại dữ liệu được trả về từ server. Mặc định thì jquery sẽ tự xác định. Các loại dữ liệu có thể là: xml, html, text, script, json, jsonp.
Tiếp theo là một ví dụ đơn giản về cách thức hoạt động của phương thức post().
Giả sử chúng ta có 1 button trong body html.
<button id="btnGo">Go</button>
Và một đoạn jquery script như sau:
 $(document).ready(function () {
            $("#btnGo").click(function () {
                var jqxhr = $.post("content.txt", function () {
                    alert("Send request success");
                })
                    .success(function () { alert("Found page success"); })
                    .error(function () { alert("Not found page or have some errors with network!"); })
                    .complete(function () { alert("Complete request"); });
                    .timeout(function () { alert("Request timeout"); });
                jqxhr.complete(function () { alert("Get response complete"); });
            });
        });
 Đoạn code trên là để tìm hiểu quy trình và vòng đời của phương thức post. Bạn request đến 1 file content thì sẽ được thông báo về việc gửi request thành công, sau đó là các phương thức tương ứng với từng giai đoạn và bạn sẽ được thông báo kết quả là nó có xảy ra điều đó hay không.
Phương thức post thường được sử dụng trong các form thu thập dữ liệu. Nó cũng có chức năng như load data từ server về như get và ajax. Nhưng thường thì get() và post() sẽ ít được dùng hơn là ajax() vì phương thức ajax() có thể dùng để thay thế 2 phương thức trên mà ajax() lại có tính linh hoạt và mềm dẻo hơn.

ps/: không có nhiều time nên mình chỉ làm 1 ví dụ đơn giản, mong các bạn thông cảm >.<

bo icon small popo
Sau một thời gian lang thang chém gió, quăng bom trên các diễn đàn, nay webzoomz.info sẽ hoạt động trở lại. Để chào đón sự trở lại này thì mình khởi động bằng 1 bài nho nhỏ thôi nhỉ. Đây là bộ icon popo một bộ icon khá dễ thương và rất hay thấy trên các form comment của diễn đàn hay blog. Bạn nào chưa có bộ icon này thì có thể download bên dưới nha . Bộ icon này gồm 54 icon popo nhỏ. Mình nghĩ nếu bạn muốn thêm nó vào comment form của blog hay forum thì nên dùng bộ nhỏ vì nó nhẹ dễ load và nhanh hơn so với dùng bộ icon lớn.
bo icon small popo

bo icon small popo


jquery ajax phuong thuc get
Bài trước mình đã giới thiệu với các bạn về jquery ajax phương thức post(). Bài viết này mình xin giới thiệu một phương thức khác cũng dùng để load dữ liệu đó là get(). Các bạn chú ý là chúng ta có thể dùng phương thức ajax() để thay thế được cho phương thức get().
$.get(): Get là phương thức trong jquery ajax giúp bạn lấy về dữ liệu từ server thông qua Http Get.
Cú pháp jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )
url: đây là tham số bắt buộc. Nó chỉ ra địa chỉ url mà request sẽ được gửi đến.
data: Tùy chọn. Nó chỉ ra dữ liệu được gửi kèm với request tới server.
success: Tùy chọn. Nó chỉ ra hàm được thực thi nếu request được gửi đi thành công. Các tham số:

  • data: chứa dữ liệu được trả về từ request sau khi gửi thành công.
  • textStatus: chỉ ra tình trạng của request: success, notmodified, error, timeout, parseerror.
  • jqXHR: chứa đối tượng XmlHttpRequest.
dataType: Tùy chọn. Nó chỉ ra loại dữ liệu được trả về từ server. Mặc định thì jquery sẽ tự xác định. Các loại dữ liệu có thể là: xml, html, text, script, json, jsonp.
Bây giờ là một ví dụ đơn giản cho phương thức get() trong jquery ajax. Giả sử mình có 1 file sitemap như thế này:

<?xml version="1.0" encoding="utf-8"?>
 <sites>
   <page id="0">
     <title>Webzoomz</title>

  <url>http://www.webzoomz.info/</url>

     <desc>Tự học thiết kế web</desc>
   </page>
   <page id="1">
     <title>Contact</title>

<url>http://www.webzoomz.info/p/contact.html</url>

     <desc>Liên hệ</desc>
   </page>
   <page id="2">
     <title>Dịch vụ</title>

<url>http://www.webzoomz.info/p/dich-vu.html</url>

     <desc>Dịch vụ liên quan đến thiết kế web</desc>
   </page>
   <page id="3">
     <title>Site map</title>
     <url>http://www.webzoomz.info/p/sitemap.html</url>
     <desc>Site map webzoomz</desc>
   </page>
   <page id="4">
     <title>Help</title>
     <url>http://www.webzoomz.info/p/help.html</url>
     <desc>Hỏi đáp kiến thức thiết kế và lập trình web</desc>
   </page>

 </sites>
 Sau đó mình có một đoạn mã html trong body như sau:

<button id="btnSitemap">Read sitemap menu</button>

<div id="page-wrap"></div>
trong body sẽ có 2 phần: 1 button để get thông tin từ file xml, còn 1 div để hiển thị thông tin từ file xml dưới dạng các link. Để get thông và hiển thị nó thì chúng ta cần đoạn code jquery ajax sau:
$(document).ready(function () {
             $("#btnSitemap").click(function () {
                 $("#page-wrap").empty();
                 $.get("sites.xml", function (xml) {
                     $(xml).find('page').each(function () {
                         var id = $(this).attr('id');
                         var title = $(this).find('title').text();
                         var url = $(this).find('url').text();
                         var desc = $(this).find('desc').text();
                         $('<div class="items" id="link_' + id + '"></div>').html('<a href="' + url + '" title="' + desc + '">' + title + '</a>').appendTo('#page-wrap');
                     });
                 });
             });
         });
Mình giải thích qua 1 chút về đoạn code trên. Đầu tiên nếu người dùng kích và button để get sitemap thì chúng ta sẽ xóa hết các phần tử con trong div pagewrap đi để tránh bị hiện thì lặp thành nhiều lần. Sau đó ta dùng phương thức get() để lấy dữ liệu từ file xml. Tiếp theo chúng ta sẽ có hàm phân tách lấy dữ liệu sau khi đã get file thành công(trạng thái success).  Bước cuối mình lặp qua chuỗi kết quả rồi đưa nó vào div. Đây là style cho div:
<style type="text/css">
    .items a,.items a:active,.items a:link,.items a:visited{

   font-size:1.2em;

color:#9900FF;
text-decoration:underline;
}
.items a:hover{
text-decoration:none;
}
.desc{
font-size:0.8em;
padding-left:10px;
}
</style>
Sau khi bạn chạy file và kích vào button thì nó sẽ hiển thị nội dung của file sitemap.
jquery ajax phuong thuc get
Chúc các bạn thành công!

jquery ajax phuong thuc ajax
Đã lâu lắm rồi mới có thời gian viết bài cho blog@@. Mình xin tiếp tục với series bài về jquery đang dang dở. Bài viết trước mình có giới thiệu cho các bạn về Jquery Ajax là gì. Để hiểu được hết Jquery Ajax thì cần phải có thời gian và sự thực hành chăm chỉ, nên mình quyết định sẽ tách các phương thức trong Jquery Ajax thành một bài nhỏ cho các bạn dễ nhớ và tập thực hành dễ hơn. Bài hôm nay mình sẽ giới thiệu phương thức Ajax().
Phương thức Ajax() dùng để thực thi một Ajax request. Đây là phương thức được sử dụng khá nhiều trong Jquery Ajax và nó có thể được dùng để thay thế một số phương thức khác trong Jquery Ajax như get(),post()...
Cú pháp: $.ajax({name:value, name:value, ... })
Phương thức này nhận vào các cặp giá trị tham số gồm tên và giá trị. Dưới đây là bảng các tham số:
async: Xác định việc request có nên được thao tác bất đồng bộ hay không. Giá trị nhận vào và true hoặc false. Mặc định là true.
beforeSend(xhr): Hàm được thực thi trước khi request được gửi đi.
cache: Xác định việc trình duyệt có nên cache trang được request hay không. Nhận vào giá trị true hoặc false. Mặc định là true.
complete(xhr,status):  Hàm được thực thi khi request đã hoàn thành. Thường lại chạy sau status là success hoặc error.
contentType: Chỉ ra loại nội dùng mà được dùng để gửi tới server. Mặc định là application/x-www-form-urlencoded, ngoài ra bạn có thể xác định 1 số loại khác như application/xml, application/js, application/json,text/xml...
context: Chỉ ra giá trị cho các hàm gọi lại liên quan của Ajax.
data: dữ liệu được gửi đến server.
dataFilter(data,type): thao tác và lọc dữ liệu thô được trả về của XmlHttpRequest.
dataType: chỉ ra loại dữ liệu mong muốn được trả về từ server. Các loại dữ liệu đó có thể là text, html, xml, js...
error(xhr,status,error): Hàm được thực thi nếu request bị thất bại.
global: Xác định việc có bẫy các sự kiện toàn cục trong Ajax hay không. Nhận vào giá trị true hoặc false. Mặc định là true.
ifModified: Chỉ ra rằng request chỉ thành công nếu response trả về đã thay đổi so với request cuối cùng được gửi. Mặc định là false.
jsonp: là chuỗi viết lại hàm callback trong request jsonp.
jsonpCallback: hàm được gọi lại trong request jsonp.
mime: chỉ ra loại mime được sử dụng để thay cho XHR mime.
password: chỉ ra password để xác minh người dùng trong HTTP access authentication request.
processData: chỉ ra việc có chuyển đổi dữ liệu được gửi kèm với request thành chuỗi query string hay không. Mặc định true.
scriptCharset: chỉ ra charset cho request.
success(result,status,xhr): Hàm được thực thi nếu request thành công.
timeout: chỉ ra thời gian timeout cho request tính bằng milli giây.
traditional: chỉ ra việc có sử dụng kiểu traditional của tuần tự hóa tham số.
type: chỉ ra loại request "GET" hoặc "POST".
url: chỉ ra địa chỉ url request được gửi tới. Mặc định là trang hiện tại.
username: chỉ ra tên của người dùng trong HTTP access authentication request.
xhr: Hàm sử dụng để tạo đối tượng XmlHttpRequest.
Bên trên chỉ là một số tham số hay thấy. Trong mỗi phiên bản jquery thì đều nâng cấp thêm 1 số tham số khác nữa. Bạn có thể xem thêm tại đây: http://api.jquery.com/jQuery.ajax/.
Bây giờ chúng ta sẽ làm 1 ví dụ đơn giản để xem cách hoạt động của phương thức Ajax().
Giả sử chúng ta có 1 file content.txt như sau:
<h1>Webzoomz-tự học thiết kế web</h1>
Và một body html gồm :

       <button id="btnDisplay">Display</button>
        <div id="status"></div>
        <div id="content"></div>
div status: sẽ in ra trạng thái của ajax.
div content: sẽ in ra nội dung lúc success hoặc lúc error:
Còn đây là đoạn script jquery ajax:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#btnDisplay").click(function () {$("#status").empty(); 
                $.ajax(
{
   //url của file
   url: "content.txt",
   // loại request
   type: "get",
   // Loại dữ liệu được trả về
   dataType: "text",
   error: function () {
       $("#status").prepend("Ajax Error<br/>");
       $("#content").html("404-Not found!!!");
   },
   beforeSend: function () {
       $("#status").prepend("Ajax Before<br/>");
   },
   complete: function () {
       $("#status").prepend("Ajax Complete<br/>");
   },
   success: function (result) {
       $("#status").prepend("Ajax Success<br/>");
       $("#content").html(result);
   }
});
            });
        });
    </script> 
 Và khi chạy đoạn code này thì bạn sẽ thấy nội dung của file text được hiển thị ra và các trạng thái tương ứng với ajax cũng được hiện ra.
P/s: dạo này không có nhiều thời gian nên mình chỉ làm được 1 ví dụ đơn giản thôi!
Jquery Ajax la gi
Mấy bài viết trước mình đã giới thiệu cho các bạn một số kiến thức cơ bản về Jquery  như Jquery là gì, cú pháp trong Jquery, các selectors trong Jquerycác hiệu ứng trong Jquery... Phần tiếp theo của series bài về jquery cơ bản này là Ajax. Trước khi nghiên cứu về Jquery Ajax, chúng ta hãy quay lại một chút về Ajax.

Ajax là gì nhỉ ? 
Ajax là viết tắt của Asynchronous JavaScript and XML. Ajax không còn là một ngôn ngữ mới nữa và nó đã được ứng dụng rất nhiều trên web. Tại sao nó lại được ứng dụng nhiều như vậy? Đơn giản vì nó có rất nhiều điểm mạnh. Ajax được tạo ra để tăng cường tính tương tác với người dùng và linh hoạt trong xử lí request tới server. Với ajax khi bạn request mới dữ liệu thì bạn sẽ không cần phải reload lại trang mà chỉ có module dữ liệu cần request mới reload. Như vậy bạn sẽ giảm tải được rất nhiều cho server. Nhưng bên cạnh những điểm mạnh như thế vẫn còn những điểm yếu của Ajax mà chúng ta cần lưu ý qua. Bạn không thể bookmark, chia sẻ link trên các mạng xã hội vì nó vẫn chỉ là link trên trên address bar và nó sẽ thay đổi khi reload dữ liệu mới. Bạn cũng không thể dùng nút back cho nó được và nếu bạn không bật enable javascript thì nó sẽ không thể hoạt động. Ngoài ra còn một điểm yếu lớn nhất của Ajax đó là google khó hoặc không thể index, hiển thị được được nội dung trong ajax module đó.
Jquery Ajax là gì?
Jquery Ajax là một phần quan trọng khác của thư viện Jquery bên cạnh các phần khác như HTML, CSS, ... Để tìm hiểu những lợi điểm của Jquery Ajax chúng ta hãy xem Jquery Ajax khác Javascript Ajax thuần ở điểm nào. Để sử dụng Ajax thuần Javascript các bạn thường phải khai báo đối tượng XmlHttpRequest mà đối tượng này ở các trình duyệt và các phiên bản khác nhau thì lại phải khai báo khác nhau. Điều này rất phiền phức và tốn thời gian. Và để xử lí một event hay viết một function để làm việc gì bạn thường phải code khá nhiều, mà code nhiều điều hiển nhiên dễ xảy ra là lỗi ở đâu đó. Nhưng với Jquery Ajax thì khác, Jquery hỗ trợ một loạt các phương thức viết sẵn để hỗ trợ cho việc xử lí request và dữ liệu và đương nhiên là bạn sẽ code ít hơn và gặp ít lỗi hơn. Ngoài ra với Jquery Ajax thì bạn không còn phải lo về vấn đề tương thích trình duyệt nữa. Với các tính năng xử lý dữ liệu và request cực kì linh hoạt và mạnh mẽ việc thiết kế và lập trình web sẽ trở nên đơn giản hơn rất nhiều.
Đó là một chút giới thiệu về Jquery Ajax. Hi vọng mọi người sẽ hiểu thêm một chút về nó.
p/s: Tuần này hơi bận rộn và có chút lười biếng nên chẳng viết được gì hết Jquery Ajax la gi