Một số jQuery Slideshow đẹp

jQuery đã và đang trở thành một công cụ rất hữu dụng cho các nhà thiết kế web. Một trong những thành công là tạo ảnh trượt (gallery, slideshow, carousel...). Hôm nay mình sẽ giới thiệu tới các bạn vài plugin mà bạn nên tham khảo khi dự định tạo một slideshow của riêng mình.

Slides

Jquery Slideshow

Nivo Slider

Jquery Slideshow cuc dep

TN3 Gallery

Jquery Slideshow dep

Pikachoose

Jquery Slideshow dep

Coin Slider

Jquery Slideshow dep

Galleria

Một vài Jquery Slideshow bạn không nên bỏ qua

Orbit

Một vài Jquery Slideshow bạn không nên bỏ qua

Supersized

Một vài Jquery Slideshow bạn không nên bỏ qua

Advanced jQuery Background Image Slideshow

Một vài Jquery Slideshow bạn không nên bỏ qua

s3Slider jQuery Plugin

Một vài Jquery Slideshow bạn không nên bỏ qua

Skitter

Một vài Jquery Slideshow bạn không nên bỏ qua

ResponsiveSlides

Một vài Jquery Slideshow bạn không nên bỏ qua

Sideways

Một vài Jquery Slideshow bạn không nên bỏ qua

Chúc các bạn lựa chọn được Slideshow phù hợp nhất cho mình.

Nhúng google map vào website

Bạn là chủ của một cửa hàng kinh doanh, chủ một shop quần áo, chủ một quán ăn ngon hay chủ một doanh nghiệp … bạn muốn website của mình có một thông tin gì đó trực quan để khách hàng có thể dễ tìm đến bạn, giải pháp tốt cho chúng ta là google map hay bản đồ google.
Hầu hết ai cũng bít đến google map đây là một công cụ định vị bản đổ rất nổi tiếng, toàn bộ bề mặt trái đất đều có ở trong bản đồ google này, kể cả địa chỉ bạn muốn nhúng vào webiste. Khách hàng sẽ không mất nhiều thời gian để tìm bỏ công tra cứu đường đi đến bạn nếu như ta sử dụng dịch vụ này.
Việc nhúng bản đồ của google vào website của bạn cũng khá đơn giản thôi, đầu tiên bạn đăng ký với google một tài khoản đó chính là Gmail của bạn. Sau đó đăng nhập vào tài khoảng ấy tiếp đến truy cập vào link: https://maps.google.com/maps, bạn click vào Địa điểm của tôi.
nhung google map vao website
Chọn Địa điểm của tôi trong google map
Sau đó bạn nhìn bên phải tim địa chỉ nào bạn muốn nhúng vào website, giả sử mình chọn địa chỉ trường ĐH Công Nghiệp Hà Nội. Sau đó chọn Lưu vào. Sau đó chọn tạo bạn đồ mới và lưu lại.
nhung google map vao website
Chọn địa điểm sử dụng trong bản đồ google
Sau đó nếu bạn muốn chỉnh sửa thì bấm vào Chỉnh sửa bên sidebar trái của google map. Ở đây bạn có thể chỉnh sửa tiêu đề hiển thị, dòng ghi chú cho bản đồ của bạn.
nhung google map vao website
Edit địa chỉ đã chọn trên Google map
Các bước đến đây gần như là hoàn thành, bạn xem lại địa chỉ ok thì ta get code mang về để vào web là chúng ta có bản đồ cho doanh nghiệp mình trên website.
Bạn click vào biểu tượng hình liên kết thân quen của mình và dòng dưới là dòng google cho chúng ta nhúng vào web. Bạn có thể thay đổi kích thước của frame (khung) này sao cho phù hợp với giao diện website của bạn.
Nhúng google map vào website
Kết luận: Việc nhúng bản đồ của google vào website có nhiều cách, trên là cách đơn giản nhất giờ chỉ việc style CSS lại cho đẹp là OK. Chúc thành công!










Tạo form tìm kiếm dạng Expandable Search

Để tạo một form tìm kiếm khi di chuột vào, nó sẽ mở rộng textbox tìm kiếm ra, chúng ta sử dụng HTML và CSS3 như sau:

HTML

<form>

<input type="search" placeholder="Tìm kiếm">

</form>

CSS3

Reset Search Input

input {

outline: none;}

input[type=search] {

-webkit-appearance: textfield;

-webkit-box-sizing: content-box;}

Đến phần định dạng phần input tìm kiếm

input[type=search] {

background:#fff url(img.png) no-repeat right center;

border: solid 1px #a3a3a3;

padding: 10px 30px 10px 10px;

margin-left:300px;

width: 150px;}

Bo góc

input[type=search] {

-webkit-border-radius: 20px;

-moz-border-radius: 20px;

border-radius: 20px;}

Hiệu ứng Transition

input[type=search] {

-webkit-transition: all 0.5s linear;

-moz-transition: all 0.5s linear;

-o-transition: all 0.5s linear;

transition: all 0.5s linear;}

Cuối cùng khi rê chuột vào phần search

input[type=search]:focus {

width: 250px;

background-color: #fff;

border-color: #6dcff6;

-webkit-box-shadow: 0 0 5px rgba(109,207,246,0.5);

-moz-box-shadow: 0 0 5px rgba(109,207,246,0.5);

box-shadow: 0 0 5px rgba(109,207,246,0.5);}

Tạo form tìm kiếm dạng Expandable Search

Chúc các bạn thành công!

Bắt sự kiện ấn phím enter

Trong nhiều trường hợp, chúng ta cần nhận biết có ấn phím enter hay không để xử lý một sự kiện tự động, không cần phải sử dụng chuột.

Chúng ta sử dụng đoạn code sau:

protected override bool ProcessDialogKey(Keys keyData)
{

if (keyData == Keys.Enter)
//  button1.Top += 20;
// điều muốn thực hiện khi ấn Enter
return base.ProcessDialogKey(keyData);

}

C# - Duyệt đệ quy các control trong một form

Trong nhiều trường hợp, số lượng control của bạn quá nhiều, nếu code thủ công gọi từng control một thì sẽ mất rất nhiều thời gian. Vì vậy, chúng ta phải nghĩ tới giải pháp dùng code tự động tìm tới các control và cho chúng làm việc.

Ví dụ sau: duyệt đệ qui các textbox

Code:

private void ClearForm(Control ctr){

if (ctr.GetType()==typeof(TextBox))

         ctr.Text = "";

// Duyệt đệ quy

foreach (Control childCtr in ctr.Controls){

           ClearForm(childCtr);

}

}

Thao tác với REGISTRY trong C#

Registry là một cơ sở dữ liệu dùng để lưu trữ thông tin về những sự thay đổi, những lựa chọn, những thiết lập từ người sử dụng Windows. Registry bao gồm tất cả các thông tin về phần cứng, phần mềm, người sử dụng. Registry luôn được cập nhật khi người sử dụng tiến hành sự thay đổi trong các thành phần của Control Panel, File Associations, và một số thay đổi trong menu Options của một số ứng dụng,...

Registry được coi là trái tim của windows, mọi thay đổi trong registry sẽ dẫn tới sự thay đổi bên ngoài mà chúng ta có thể nhận thấy được.

Trong phần mềm, registry thường được sử dụng để lưu trữ thông tin bản quyền người dùng, thông tin sản phẩm….

Để thao tác được với registry, chúng ta làm như sau:

Ví dụ: Tìm tất cả các chuơng trình startup cùng window

Code:

using System;

using System.ComponentModel;

using System.Text;

using System.Windows.Forms;

using Microsoft.Win32;

namespace registry

{

public partial class Form1 : Form

{

        public Form1(){

             InitializeComponent();

      }

      private void Form1_Load(object sender, EventArgs e){

              RegistryKey rg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);

              string[]s=rg.GetValueNames();

              foreach(string ex in s) {

                     adone(ex,rg.GetValue(ex).ToString(),listView1);

              }

      }

      private void adone(String name, String path,ListView l){

               int n = l.Items.Count;

               l.Items.Add(n.ToString());

               l.Items[n].SubItems.Add(name);

               l.Items[n].SubItems.Add(path);

      }

}

}

Xóa file vào xọt rác bằng C#

Chỉ với 3 bước đơn giản sau, bạn có thể code cho ứng dụng của mình chức năng xóa file vào xọt rác của windows.

1. Add reference Microsoft.VisualBasic
2. using Microsoft.VisualBasic.FileIO;
3. dùng hàm FileSystem.DeleteFile với tham số thứ 3 là lựa chọn RecycleOption.SendToRecycleBin

Chuyển tiếng việt có dấu thành không dấu

Khi lập trình, có rất nhiều trường hợp bạn cần chuyển tiếng việt có dấu thành không dấu.

Ví dụ để rewrite url thân thiện với SEO hơn, ta phải chuyển tiêu đề bài viết từ tiếng việt có dấu sang không dấu.

Để làm được việc này, chúng ta sử dụng hàm sau:

public string LocDau(string giatri)

{

try

{

Regex regex = new Regex("\\p{IsCombiningDiacriticalMarks}+");

string strRuler = accented.Normalize(System.Text.NormalizationForm.FormD);

strRuler = regex.Replace(strRuler, String.Empty).Replace('\u0111', 'd').Replace('\u0110', 'D');

return Regex.Replace(strRuler, @"[^\w\.-]", " ");

}

catch {

return "Co loi khi chuyen doi!";

}

}

Chúc các bạn thành công!

Chương trình chụp màn hình đơn giản

Đầu tiên bạn thêm vào form một control là PictureBox.

Sau đó add một button vào form. sửa tên button thành : btnCapture

Nhấp sự kiện button đó và code giống như đoạn code dưới đây.

private void btnCapture_Click(object sender, EventArgs e)

{

Bitmap Bitmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

Graphics g = Graphics.FromImage(Bitmp);

g.CopyFromScreen(0, 0, 0, 0, Bitmp.Size);

pictureBox1.Image = Bitmp;

}

Vậy là bạn có chương trình đơn giản về chụp màn hình.

Lấy code html của 1 trang web

Trong quá trình lập trình ứng dụng, chắc hẳn các bạn đã gặp phải trường hợp phải lấy code html từ một URL trên mạng.

Để làm được việc này, bạn chỉ cần sử dụng đoạn code sau.

string url=”http://iloveit1208.blogspot.com“;

HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);

HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

Stream stream = httpWebResponse.GetResponseStream();

StreamReader streamReader =new StreamReader(stream, Encoding.ASCII);

string html=streamReader.ReadToEnd();

Tạo hình dáng của form theo ý muốn từ các file ảnh

Bạn muốn tạo ra ứng dụng với các form với hình dáng đẹp, không phải dạng hình chữ nhật như bình thường. Bài viết này sẽ giúp bạn làm điều đó.

Có 2 cách để làm việc này:

Cách 1: Bạn dùng Window Region để tạo hình dáng form theo ý muốn.

Cụ thể hơn, bạn có một hình bất kỳ theo ý muốn, các phần không muốn hiển thị sẽ có một màu đặc biệt nào đó (Key color, Transparent coloer), dùng thuật toán tạo Region từ hình đó, set giá trị Region cho form.

Code:

public static Region BitmapToRegion(Bitmap bitmap, Color transparencyColor)

{

if (bitmap == null)

       throw new ArgumentNullException("Bitmap", Strings.BitmapCannotBeNull);

int height = bitmap.Height;

int width = bitmap.Width;

GraphicsPath path = new GraphicsPath();

for (int j=0; j<height; j++ )

     for (int i=0; i<width; i++)

     {

             if (bitmap.GetPixel(i, j) == transparencyColor)

                     continue;

             int x0 = i;

             while ((i < width) && (bitmap.GetPixel(i, j) != transparencyColor))

             i++;

             path.AddRectangle(new Rectangle(x0, j, i-x0, 1));

       }

Region region = new Region(path);

path.Dispose();

return region;

}

}

Cách dùng:

Code:

Bitmap background = new Bitmap("background.gif");

this.Region = GraphicsUtility.BitmapToRegion(background, Color.Green);

Cách 2: Dùng Layered windows. Bạn tham khảo cách này ở bài viết này:

http://www.codeproject.com/cs/media/perpxalpha_sharp.asp

Thay đổi con trỏ chuột bằng 1 hình ảnh bất kỳ ??

Bạn muốn ứng dụng của mình thật lung linh, đẹp mắt đến từng chi tiết, với con trỏ của windows, bạn đã quá nhàm chán, bạn muốn khi vào ứng dụng của mình, con trỏ sẽ được thay đổi tùy ý. Bài viết này sẽ hướng dẫn bạn là điều đó.

Đầu tiên bạn cần 1 ảnh.

Ví dụ: 1.jpeg

Sau đó sử dụng đoạn code sau lúc khởi tạo form.

Code:

Bitmap b = new Bitmap("1.jpeg");

IntPtr ptr = b.GetHicon();

Cursor c = new Cursor(ptr);

this.Cursor = c;

Cách lấy dung lượng RAM

Bài viết này sẽ hướng dẫn các bạn các code để lấy được dung lượng RAM trên máy tính của bạn để hiển thị lên ứng dụng của mình.

Đầu tiên phải add reference Microsoft.VisualBasic từ solution explorer

Code:

using Microsoft.VisualBasic;

var ram = new PerformanceCounter("Memory", "Available MBytes");

// lấy dung lượng RAM free thời điểm hiện tại

float cur = ram.NextValue();

// lấy dung lượng tổng cộng của các thanh RAM

ulong max = new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory;

Bounce Rate là gì ? Những lý do khiến tỉ lệ BR cao

Bounce Rate là một trong những yếu tố có tầm ảnh hướng mạnh nhất đến sự thành công của một website. Bạn có thể có ranking cao và một lượng truy cập lớn mà việc sử dụng dịch vụ SEO mang lại cho website, nhưng với một tỉ lệ Bounce Rate cao trên mức cho phép thì mọi sự đầu từ cũng như nỗ lực cố gắng đây cao traffic cho website đều trở nên vô nghĩa. Đối với những SEOer chuyển nghiệp, họ đều có những phương thức cụ thể để theo dỏi và điều hướng bounce rate hằng ngày, nhằm nhanh tróng tìm ra ly dó và đề ra cách khắc phục tốt nhất. Nhưng ngược lại đối với những người làm SEOer không chuyên, thì bounce rate hình như vẫn là một định nghĩa còn quá xa lạ.
Bounce Rate là gì ?
Theo google analytic blog thì Bounce Rate là tỷ lệ phần trăm lượng truy cập vào website hoặc từ trang web khác tới rời bỏ website của bạn. Có nghĩa là tỉ lệ người truy cập không tìm thây thông tin hữu ích trên website của bạn.

bound rate la gi

Theo một số chuyên gia về SEO hàng đầu, thì những trang web dạng CMS thông tin, tin tức cập nhật ngay tại trang đích thì tỉ lệ bounce rate đạt khoảng 35% là tốt nhất. Trong khi nhưng website dạng thương mại, có trang đích như là một trang giới thiệu (dạng giống SEO Việt Nam) thì tỷ lệ bounce rate khoảng 50% thì được xem là thành công.
Hãy dành chút thời gian để quan sát và theo dỏi bounce rate của website bạn, thông số này được thống kê rất chi tiết trong Google analytics / Visitor. Nhưng website nào có tỷ lệ bounce rate trên 70%, thì cũng đừng băn khoăn là tại sao traffic vài trăm lượt truy cập 1 ngày, nhưng đơn đặt hàng thì chẳng có , vì đơn giản là chỉ có chưa được 30% của còn số vài trăm đó cảm thấy thông tin trên website của bạn là có ích.
Những nguyên nhân khiến website của bạn có tỉ lệ Bounce Rate cao
ON PAGE SEO:
1. Web design & tính khả dụng: Những thiết kế trong cách trình bày website là rất quan trọng trong vấn đề này. Theo nghiên cưu thì có đến 30% người được cho là sẽ rời website của bạn nếu họ phải trờ quá 30s và gấp đôi số đó nếu thời gian trờ lên đến 50s.
2. Nội dung: Đây là một vấn đề cũng quan trọng không kém, hãy chắc rằng trang đích của bạn chứa nội dung tập trung vào những vấn đề cụ thể liên quan đến những từ khóa cụ thể. Tránh trường lạc đề và không mang lại kết quả cụ thể.
3. Danh mục chính trên website: Đây cũng là một lý do thu hút người xem thích ở lại với website của bạn. Những danh mục chính cần được bố chí hướng tới người dùng, sắp xếp khoa học dẫn tới những bài viết liên quan hoặc những chuyên mục liên quan đến vấn đề tìm kiếm của người dùng.
4. Vấn đề về kĩ thuật: Sự đa dạng của các trình duyệt web mang lại rất nhiều lợi ích cho người sử dụng, nhưng đồng thời cũng đẩy webmaster vào một cuộc chiến rắc rối, đó là làm vừa lòng tất cả các trình duyệt này. Bạn cần  chắc chắn webiste của bạn hiện thị tốt trên mọi trình duyệt và không có hiện tượng don’t send hay not responding ^^
5. Lựa chọn từ khóa: Trong thế giới marketing online thì việc lựa trọn từ khóa tốt có thể đem lại cho website của bạn rất rất nhiều traffic từ số lượng người tìm kiếm từ khóa đó. Nhưng vấn đề ở đây là vì tham lam những từ khóa giàu tài nguyên đó mà bạn bỏ qua yếu tố người dùng ở đây. Một ví dụ và các bạn sẻ hiểu vấn đề này:
Cách đây vài tháng mình có một khách hàng làm về “thiết kế kiến trúc”, nhưng họ cứ khăng khăng là website của họ phải ranking cao với những từ khóa: “thiet ke” , “noi that” , “van phong” …, sau khi được mình phân tích và tư vấn thì họ mới đồng ý làm việc với những từ khóa như “thiet ke noi that”, “thiet ke van phong”… nhưng tư khóa liên quan trực tiếp đến ngành nghề của họ. Và hiện tại website này đang rất thành công. Điều này chứng minh rằng những từ khóa short team (ngắn) tất nhiên sẻ có nhiều lượt tìm kiếm hơn, nhưng nó cũng bao hàm một ý nghĩa hoàn toàn khác nếu đằng sau nó là những từ khác nhau.
6. Ad copy: Những mẫu quản cáo PPC trên các search engine có thể mang lại rất nhiều traffic cho website, nhưng khi những bản copy của các mẩu quảng cáo này được điều hướng hiển thị không đúng nội dung mà nó cần được dẫn tới, hoặc thông tin trên nhưng mẫu quảng cáo được copy không thích hợp với nội dung trang hiển thị quảng cáo, nó có thể chỉ khiến bạn mất tiền vô ích.
7. Title và description: Những phần title và description hiển thị mang tính chung chung hoặc không diễn giải đúng nội dung cả trang đích sẽ khiến website của bạn mất đi niềm tin từ người đọc.
8. Ranking không đúng từ khóa: Google rất thông minh, những vẫn chưa thông minh đến độ phần biệt được ngữ nghĩa của các từ gần gần giống nhau. Trường hợp ở đây có thể là “SEO” và “sẹo” hoặc “seo” của search engine optimization và “seo” của seo ju jin gì gì bên hàn ^^
9. Xây dựng backlink: Một vấn đề rất hi hữu những đôi khi các bạn rất dễ mắc phải, đó là xây dựng một lượng lớn backlink với những anchor text chẳng liên quan gì đến website của bạn cả. Thủ thuật này cũng đươc dùng khá phổ biến trong việc đẩy nhanh việc xếp hạng PR của các SEOer mũ đen. Và điều tất yếu là những liên kết này sẻ dẫn đên một nội dung chẳng ăn nhằm gì với suy nghĩ của người dùng.
Việc giảm thiểu tối đa tỷ lệ bounce rate cũng đồng nghĩa với việc giữ chân khách hàng ở lại lâu hơn trên website của bạn. Đó là một phần tất yếu cần phải có của việc phát triển SEO – Marketing, để hướng đến một tỷ lệ chuyển đổi cao cho hoat động kinh doanh thì trước hết bạn phải biết cách để giữ chân những khách hàng tiềm năng mà bạn đã có trước đã.

BACKLINK LÀ GÌ? CÁCH SỬ DỤNG

Backlink hiểu một cách đơn giản nhất và theo nghĩa đen là được liên kết lại. Hoặc nói cách khác Backlink là dạng liên kết từ trang web A sang trang web B và trang web B sẽ liên kết ngược lại trang web A. Backlink là một trong những cách đơn giản nhất để tăng thêm traffic cho trang web của bạn. Và nó cũng đóng một vai trò quan trọng trong quá trình tối ưu hóa công cụ tìm kiếm và tăng PageRank của bạn với Google.

Thực tế thì tôi không phải là một chuyên gia về SEO nhưng tôi cũng biết một số cách để bạn có thể kiếm thêm traffic cho trang web của bạn và tôi muốn chia sẻ với các bạn trong bài này. Để lọt được vào đôi “mắt xanh” của nàng Google bạn phải có rất nhiều tiêu chí, thì một trong những tiêu chí đó là Backlink. Bởi vì để tránh bị các chàng “lừa tình” cho nên nàng Google mới nghĩ ra một cách là đánh giá các chàng bằng backlink. Nó nghĩ rằng nếu một ai đó muốn tạo một trang web dạng spam thì sẽ ít ai liên kết đến trang đó. Do vậy trang web nào được liên kết đến bởi nhiều trang web khác. Đặc biệt là những trang có lý lịch trong sạch và tồn tại lâu năm, thì những link đó rất có giá trị và có thể suy diễn rằng trang đó không phải là một dạng Spam.

Hiểu được cách Google nhìn nhận Backlink vậy thì bạn phải kiếm backlink bằng cách nào. Có rất nhiều cách và cũng khá đơn giản để tiến hành.

1. Nội dung trang web phải thật hay

Cái này là điều kiên tiên quyết để một trang web có thể tồn tại hay không. Không ai vào trang web của bạn chỉ để xem những thứ vô giá trị. Do vậy tạo ra nội dung hấp dẫn là một cách kiếm backlink hiệu quả nhất và lâu dài nhất. Bởi vì khi những bài viết của bạn có giá trị, nhiều người khác sẽ đăng tải lại và liên kết đến trang của bạn. Cho dù những bước ở dưới đây bạn làm có tốt đến đâu, nhưng nội dung của bạn không hay thì nó cũng không có tác dụng lâu dài.

2. Post Comment trên các blog khác

Thực tế thì cách kiếm backlink đơn giản nhất là đi dạo các blog cùng chủ đề và để lại comment. Nhưng quan trọng nhất là bạn đừng có spam kiểu “xin con tem”, “hay đấy!”, “post nhiều lên nhé!” v.v.. những comment kiểu này không có giá trị và đôi khi còn có tác dụng ngược và gây phản cảm. Và rất có thể bị admin trang web đó xóa mất. Do vậy bạn nên nhớ là phải để lại comment một cách nghiêm túc và có tính chất xây dựng. Như thế người ta mới thăm blog của bạn và bạn mới có traffic.

3. Để lại chữ ký trên diễn đàn

Diễn đàn rất phổ biến ở Việt Nam do vậy ở mỗi diễn đàn bạn tham gia, hãy để lại chứ ký và nó sẽ là nguồn traffic không tệ cho bạn. Nhưng để chữ ký của bạn được mọi người lưu ý bạn cũng nên xem kỹ quy định của diễn đàn đó về chữ ký. Đừng gây sự chú ý bằng hình to quá cỡ cũng gây phản tác dụng. Bạn cũng không nên spam các diễn đàn khác cũng gây phản ứng ngược lại và không có thiện cảm trong mắt người đọc. Hãy đóng góp bài viết xây dựng diễn đàn “đặc biệt” là những box HOT đông người xem.

4. Tạo Profile trên Yahoo và Google

Google có trang cho phép bạn tạo Profile và bạn có thể kèm URL của trang web của mình. Nếu Profile của bạn đầy đủ bạn cũng có thêm một đường Link từ “ông kẹ” rồi. Thêm nữa bất cứ khi nào bạn tham gia một diễn đàn hoặc trang web nào mà cho phép thành viên khai báo phần URL, hãy điền thông tin này vào. Nó cũng giúp bạn chút ít.

Kết luận

Khi đã nói về SEO thì bất cứ việc gì có thể tăng traffic chúng ta đều phải làm hết cho dù đó tưởng chừng như nhỏ nhặt. Nhưng “góp gió thành bão” một chút rồi một chút sẽ làm cho trang web của bạn ngày càng nhiều traffic. Bạn có áp dụng những cách trên trong trang web của mình không? hoặc bạn kiếm backlink bằng cách nào? hay chia sẻ với mọi người

nguồn izwebz.com

20 cách để tăng Alexa Rank

Đây là một tập hợp các phương thức bạn có thể sử dụng để làm tăng nhanh thứ tự xếp hạng Alexa cho website của mình sưu tập được.Các thủ thuật này có hiệu quả không? Theo một số người thì chúng rất hiệu quả. Nhưng xin chú ý là một số phương thức đòi hỏi bạn phải lỗ lực và cố gắng rất nhiều mới đạt đượt.
Để tăng Alexa rank trong dài hạn, tôi khuyên bạn nên tập trung vào phát triển nội dung và chất lượng website của bạn vì đó mới là thứ thu hút và hấp dẫn người đọc nhất, đừng chỉ chú trọng vào tăng Alexa rank một cách giả tạo.
Một nội dung hay nào đó mà có được các liên kiến đến từ những site lớn khác sẽ tạo cho site của bạn có sự tăng traffic một cách tự nhiên và đó là cách tuyệt vời nhất giúp bạn tăng Alexa rank.
Điều rất quan trọng cần phải nhấn mạnh là bạn phải dành hết công sức để phát triển thêm nội dung để thu thêm người đọc bên cạnh việc sử dụng các thủ thuật sau:
1. Cài thanh công cụ Alexa hay extention SearchStatus của Firefox và đặt blog của bạn làm trang chủ. Đây là bước cơ bản nhất.
2. Đặt Alexa rank widget trên website của các bạn. Mấy ngày trước tôi có đặt lên trên blog của mình và thấy rằng mỗi ngày cũng có khá nhiều người click vào để xem. Mỗi click này được tính là một visit ngay cải khi người click đó không cài thanh công cụ của Alexa.
3. Khuyến khích người khác sử dụng thanh công cụ của Alexa. Đó là bạn bè, các webmaster đồng nghiệp hay là cả những người đọc hoặc khách ghé thăm blog của bạn. Hãy nhớ liên kết đến trang của Alexa để mọi người biết được thanh công cụ và hệ thống theo dõi của Alexa để người đọc biết được lợi ích của việc sử dụng thanh công cụ này.
4. Bạn làm việc ở văn phòng hay có công ty riêng? Hãy cài thanh công cụ Alexa hay Extention SearchStatus của Firefox trên tất cả các máy tính và đặt website hay blog của bạn làm trang chủ cho tất cả các trình duyệt. Cái này chỉ có tác dụng khi sử dụng IP động hoặc IP các máy khác nhau.
5. Hãy mời bạn bè đánh giá và bình chọn cho profile của website của bạn trên Alexa. Tôi không chắc chắn 100% rằng nó sẽ tác động lên thứ tự xếp hạng của bạn, nhưng ít nhiều nó cũng giúp được điều gì đó.
6. Viết về Alexa. Các webmaster và các blogger thích được nghe về các cách làm tăng Alexa rank. Họ sẽ link đến bạn và sẽ đưa traffic đến cho bạn.
7. Quảng cáo URL của bạn trong các forum dành cho webmaster. TraCác webmaster thường cài đặt thanh công cụ của Alexa. Nếu như có webmaster nào đó vào xem website của bạn và để lại vài lời comment hữu ích nào đó thì đó là một cách rất tốt để cho cộng đồng biết rằng bạn có gì đó hay trên website của mình để chia sẻ.
8. Viết nội dung liên quan đến các webmaster. Cái này có thể rơi vào chủ đề về Domain và SEO, hai lĩnh vực mà hầu hết các webmaster khi vào xem trên website của bạn thì họ đã cài sẵn thanh công cụ Alexa. Sau đó hãy quảng bá nội dung của bạn trên các mạng xã hội hay các forum.
9. Sử dụng Alexa Ridirect cho URL của website. Hãy thử dùng :  http://redirect.alexa.com/redirect?<URL> . Hãy thay URL của website của bạn. Hãy sử dụng URL được redirect này trên blog comment cũng như trên chữ ký ở các forum. URL redirect này sẽ giúp đếm các IP riêng biệt một lần trong một ngày, nếu có click lên nhiều lần cũng chỉ tính một IP. Cũng chưa có bằng chứng chứng minh là việc này có lợi cho Alexa rank, vì vậy nên sử dụng cẩn thận.
10. Viết bài trên các website xã hội hay các forum có ngôn ngữ châu Á. Nhiều webmaster có nói rằng các người dùng ở các nước Đông Á là những fan của thanh công cụ Alexa, hãy xem sự hiện diện các website ở Đông Á trên Top 500 của Alexa. Tôi khuyên bạn làm điều này khi có thời gian.
11. Hãy tạo một mục dành cho các webmaster trên website của bạn. Đây là một thanh nam châm thu hút các webmaster thường xuyên ghé thăm website của bạn.
12. Khơi gợi. Việc này thường mang đến cho website của bạn rất nhiều khách xem và số người xem đó sẽ làm tăng Alexa rank của bạn.
13. Sử dụng chương trình quảng cáo PayperClick. Mua quảng cáo trên các bộ máy tìm kiếm như Google sẽ giúp mang traffic đến với bạn. Sẽ là lợi đôi đường nếu quảng cáo của bạn lại rất liên quan đến các webmaster.
14. Tạo một chuyên mục dành cho Alexa trên blog của bạn và sử dụng nó để đăng các bài viết hay các tin tức về Alexa. Đây là một nguồn dễ truy cập cho các wemaster hay các người tìm kiếm ngẫu nhiên trên mạng, trong khi đó nó lại giúp tăng xếp hạng của bạn trên các bộ mãy tìm kiếm.
15. Tối ưu hóa các bài viết. Hãy lựa chọn các bài viết hay nhận được traffic từ các bộ máy tìm kiém, thêm vào đó một graph hay một widget ở cuối và link đến bài viết về Alexa hoặc sử dụng Alexa rediret cho các địa chỉ URL của các bài viết khác trong website của bạn.
16. Mua traffic bằng banner và link từ các forum hoặc các website dành cho webmaster. Một vị trí quảng cáo dễ nhìn thấy sẽ đưa rất nhiều traffic là các webmaster đến website của bạn. Việc này đặc biệt giúp tăng Alexa rank.
17. Thuê người viết trên forum để dắt khách đến website của bạn. Có thể sử dụng chữ ký trên các webmaster forum hoặc khuyếch trương các bài viết đặc biệt để kéo khách vào website của bạn..
18. Trả tiền cho các chủ tiệm net hoặc cafe net để cài đặt thanh công cụ Alexa và đặt website của bạn làm trang chủ trên các máy tính trọng tiệm của họ. Có thể điều này rất khó làm, nhưng nó là một cách rất hiệu quả.
19. Sử dụng MySpace. Đây là cách không trung thực lắm nên tôi không khuyên bạn sử dụng trừ khi bạn thực sự quan tâm đến Alexa rank. Hãy sử dụng các bức ảnh hay banner bắt mắt và link chúng đến URL được redirect qua Alexa. Việc này sẽ hiệu quả nhất nếu nội dung trên website của bạn đặc biệt có liên quan đến MySpace.
20. Thử dùng Autosurf. Chúng có hiệu quả không? Có thể có hiệu quả cho các site mới. Tôi nghĩ chúng phù hợp nhất cho các site mới và có Alexa rank rất thấp. Vài địa chỉ AutoSurf nên dùng : autosurf.vn và simplyautohits.com .Xin chú ý rằng khi bạn sử dụng autosurf song song với các quảng cáo contextual (quảng cáo theo ngữ cảnh) như AdSense thì sẽ gặp vấn đề. Đây không phải là giải pháp cải thiện Alexa rank trong dài hạn vì thế tôi khuyên bạn nên cẩn thận khi sử dụng.

10 thủ thuật SEO để tăng tần suất của bọ tìm kiếm

Tần suất viếng thăm cao của bọ tìm kiếm trên Website của bạn là dấu hiệu tốt của việc chỉ số hóa Website của máy tìm kiếm. Đây là bước đầu tiên quan trọng trong việc tối ưu hóa Website cho máy tìm kiếm. Bài viết này sẽ cung cấp cho bạn 10 thủ thuật SEO nhằm tăng tần suất bọ tìm kiếm trên Website của bạn.
Việc bọ tìm kiếm của Google viếng thăm Website là dấu hiệu tốt cho việc Website được máy tìm kiếm đánh chỉ số đều đặn, đây là bước đầu tiên trong việc đứng hạng cao trên trang kết quả tìm kiếm. Tuy nhiên, bọ tìm kiếm chỉ viếng thăm thường xuyên và sâu trên Website của bạn khi nó coi Website đó là quan trọng và có giá trị.
Chú ý rằng bạn không thể ép buộc Googlebot viếng thăm Website của bạn thường xuyên, nhưng bạn có thể mời bọ tìm kiếmq viếng thăm. Sau đây là 10 thủ thuật bạn có thể áp dụng để tăng tần suất truy cập của bọ tìm kiếm (ví dụ : Googlebot hay Slurp Yahoo)
Sau đầy là 10 thủ thuật SEO để bạn có thể cải thiện tần suất viếng thăm Website của bọ tìm kiếm :

  1. 1. Cập nhật thường xuyên nội dung (và ping cho Google sau mỗi lần cập nhật). Hãy cố gắng tạo ra các nội dung duy nhất thường xuyên và đều đặn (3 lần một tuần nếu có thể nếu như bạn không thể cập nhật hàng ngày và tìm ra tần suất cập nhật tối ưu hóa);
  2. 2. Đảm bảo rằng máy chủ hoạt động tốt : Xem thống kê Google Webmaster tools để biết được những trang lỗi. Ngoài ra còn có 2 công cụ bạn có thể thử để tìm lỗi : Pingdom and Mon.itor.us;
  3. 3. Cải thiện thời gian tải trang (page load time) : Chú ý rằng, bọ tìm kiếm hoạt đông với một quĩ thời gian nhất định. Nếu nó phải sử dụng thời gian để đánh chỉ số một số lượng lớn hình ảnh hoặc tài liệu PDFs thì nó sẽ dành ít thời gian để thăm các trang khác;
  4. 4. Kiểm tra cấu trúc Website : Chắc rằng không có nội dung trùng lặp nào trên Website thông qua một liên kết URL khác. một lần nữa, nếu như Googlebot mất thời gian đánh chỉ số các trang trùng lặp nội dung này thì chắc chắn nó sẽ không có thời gian ghé thăm trang khác;
  5. 5. Có thêm nhiều liên kết trỏ đến (backlink) từ các Website được bọ tìm kiếm ghé thăm thường xuyên;
  6. 6. Điều chỉnh tần suất đánh chỉ số của bọ tìm kiếm trong Google Webmaster Tools – Công cụ Google cho quản trị Web;
  7. 7. Thêm sơ đồ Website Sitemap. Về lý thuyết sơ đồ Website sẽ giúp bọ tìm kiếm xác định nhanh chóng cấu trúc, nội dung Website và từ đó nó có thể đánh chỉ số tốt toàn bộ Website. Tuy nhiên cũng có một số Webmaster để ý thấy rằng tần suất của bọ tìm kiếm giảm hẳn sau khi thêm Sitemap và họ khuyến cáo không nên sử dụng Sitemap. Đây là vấn đề đang được tranh luận khá sôi nổi trên các diễn đàn Webmaster;
  8. 8. Đảm bảo rằng máy chủ Web trả về các HTTP Header Status chính xác. Và bạn đã tạo ra một trang error 404 riêng trong trường hợp không tìm được tệp tin hay thư mục trên Website. Việc các Http Header được trả về chính xác giúp bọ tìm kiếm hiểu được chuyện gì đang xảy ra và đó là cách giải thích rõ ràng nhất cho máy tìm kiếm trong trường hợp có lỗi;
  9. 9. Hãy sử dụng thẻ tiêu đề và thẻ Meta tags (ví dụ description hay keywords) duy nhất cho từng URL của Website.
  10. 10. Theo dõi tần suất của bọ tìm kiếm Googlebot để xác định xem nội dung nó quan tâm và những vấn đề xảy ra nếu có.

10 thủ thuật SEO tối ưu hóa tiêu đề thân thiện với Google

Tiêu đề bài viết là một trong những ít thông tin mà máy tìm kiếm cung cấp cho người tìm kiếm trên trang kết quả trước khi nội dung được hiển thị. Ví thế, Google cũng như những cỗ máy tìm kiếm khác rất coi trọng tiêu đề trang. Việc tối ưu hóa tiêu đề bài viết vì thế rất quan trọng, sau đây là 10 thủ thuật SEO tối ưu hóa tiêu đề bài viết.

  1. Google hiển thị từ 60 đến 70 ký tự đầu tiên của tiêu đề trong trang kết quả tìm kiếm.  Vì thế bạn hãy đặt các từ khóa quan trọng nhất trong phần đầu tiên của tiêu đề bài viết và các từ khóa kiếm quan tọng hơn nằm lùi về phía sau. Nếu tiêu đè bài viết của bạn dài quá 70 ký tự, Google sẽ cắt bớt; Google chỉ lấy đến ký tự thứ 69 và thay thế dấu ba chấm “…” cho phần còn lại của tiêu đề.
  2. Đôi khi, thay vì bắt đầu tiêu đề của bài viết bằng một loạt từ khóa, thì bạn nên thêm các ký tự mang tính chất miêu tả, cung cấp thông tin về nội dung và đặt trước từ khóa quan trọng. Điều này sẽ giúp bài viết vượt qua bộ lọc của Google trong kết quả tìm kiếm (Và đương nhiên nó sẽ có thứ hạng ổn định hơn), trong khi mang lại thêm cho bạn thứ hạng cao đối với những từ khóa phụ (chứa trong phần đầu tiên của tiêu đề).
  3. Tiêu đề trang là một trong số ít thông tin mà Google cung cấp cho người dùng trong trang kết quả tìm kiếm trước khi người tìm kiếm chọn để hiển thị nội dung. Ví thế, tiêu đề bài viết là yếu tố quan trọng để thu hút sự chú ý của người tìm kiếm và kích thích họ nhắp chọn xem nội dung giữa rất nhiều trang kết quả khác của các đối thủ cạnh tranh. Đây là yếu tố quyết định và là cơ hội tạo ra sự khác biệt giữa chính bạn và các đối thủ khác về mặt chất lượng.
  4. Tiêu đề tốt sẽ tạo ra ý muốn trả lời và đặt câu hỏi, kích thích người đọc.
  5. Vì tiêu đề bài viết là một trong những yếu tố duy nhất mà máy tìm kiếm hiển thị cho người tìm kiếm trước khi xem nội dung trang, nên chúng sẽ gán trọng số cao cho các từ xuất hiện trên tiêu đề. Thêm nữa, rất nhiều người khi liên kết tới trang sẽ sử dụng tiêu đề bài viết như là ký tự liên kết (anchor text).
  6. Việc chèn các từ khóa một cách trùng lặp, giống nhau một cách hợp lý và dễ đọc cho phép bạn cải thiện độ tin cậy của chuỗi các từ khóa. Tuy nhiên, những từ khóa này phải được sắp xếp có ý nghĩa và dễ đọc cho người tìm kiếm chứ không phải cho bọ tìm kiếm. Thay vì nhồi nhét danh sách từ khóa vào trong phần tiêu đề thì bạn nên trình bày tiêu đề rõ ràng và mang tính miêu tả nội dung, sản phẩm hay dịch vụ Website của bạn.
  7. Đánh giá sai tiềm năng khách hàng bằng việc cung ứng các dịch vụ không tương thích sẽ làm giảm tỉ lệ chuyến đổi và lãng phí thời gian phục vụ cho các đối tượng không phải là khách hàng tiềm năng. Ví dụ, nếu sản phẩm của bạn là các mặt hàng cao cấp thì Website của bạn không cần phải tối ưu, quảng bá các từ khóa giá rẻ, hạ giá, giảm giá vì nó sẽ làm lãng phí thời gian.
  8. Mỗi trang trên Website của bạn nên có tiêu đề khác biệt. Trừ phi, nếu Website của bạn bị giới hạn về kích thước và độ hiển thị, tốt nhất không nên sử dụng tiêu đề trang theo cùng một công thức trên toàn Website. Bạn cũng không nên sử dụng cùng một từ khóa ở ngay đầu hoặc gần ngay đâu tiêu đề trang.
  9. Định dạng, thứ tự và lựa chọn từ cho từ ngữ của tiêu đề nên khác biệt (ít nhiều) với  thẻ miêu tả description hoặc phần tiêu đề đầu trang.
  10. Nếu bạn có thương hiệu mạnh, bạn nên đặt nó ở phần cuối tiêu đề. Nếu bạn có một trong những thương hiệu tin cậy hàng đầu trên Internet (như eBay, Amazone, …) thì bạn nên đặt nó lên phần đầu của tiêu đề. Thông thường, tiêu đề của trang phải được tập tủng vào nội dung của trang và mục đích của người tìm kiếm hơn là thương hiệu Website.

Tạo mật khẩu ngẫu nhiên trong ASP.NET

Trên các diễn dàn hoặc các website nếu họ có chức năng đăng kí và quản lí thành viên thì đều có 1 chức năng đó là lấy lại mật khẩu. Khi lấy lại mật khẩu thì bạn luôn không lấy được mật khẩu mình đã quên mà lấy được một mật khẩu mới với một chuỗi các kí tự được sắp xếp ngẫu nhiên. Điều này là do các password đã được hash(băm - thuật toán băm dữ liệu->không thể lấy lại dữ liệu ban đầu). Vì thế bạn chỉ có thể nhận một password mới. Bài viết này mình xin hướng dẫn các bạn cách tạo một phương thức sinh password mới ngẫu nhiên.

public static string GenerateRandomPassword(int length)
        {
            string allowedLetterChars = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
            string allowedNumberChars = "0123456789";
            char[] chars = new char[length];
            Random rd = new Random();
            bool useLetter =  true;
            for (int i = 0; i < length; i++)
            {
                if (useLetter)
                {
                    chars[i] = allowedLetterChars[rd.Next(0, allowedLetterChars.Length)];
                    useLetter = false;
                }
                else
                {
                    chars[i] = allowedNumberChars[rd.Next(0, allowedNumberChars.Length)];
                    useLetter = true;
                }
            }
            return new string(chars);
        }

Sau đó bạn gọi phương thức này ra khi bạn cần và truyền vào tham số là số kí tự cho password mới. Ví dụ như GenerateRandomPassword (6) và kết quả là z8BSGm. Hy vọng với chút thủ thuật nhỏ này các bạn có thể tạo được 1 module lấy lại mật khẩu trên web. Chúc các bạn thành công!

Đếm số người online và số lượt truy cập ASP.NET

Bài viết này mình xin hướng dẫn các bạn cách để tạo một bộ đếm số người online và số lượt truy cập. Đây là một module rất hay thấy trên các web. Các bạn có thể sử dụng một vài plugin được hỗ trợ sẵn nhưng mình nghĩ các bạn nên tự tạo cho mình một module của riêng mình thì sẽ tốt hơn(trong việc tùy chỉnh giao diện). Để tạo module này mình sẽ sử file Global.asax
Các bạn sẽ viết đoạn code sau trong sự kiện Session_Start

int count_visit = 0;
        //Kiểm tra file count_visit.txt nếu không tồn  tại thì
        if (System.IO.File.Exists(Server.MapPath("~/count_visit.txt")) == false)
        {
            count_visit = 1;
        }
        // Ngược lại thì
        else
        {
            // Đọc dử liều từ file count_visit.txt
            System.IO.StreamReader read = new System.IO.StreamReader(Server.MapPath("~/count_visit.txt"));
            count_visit = int.Parse(read.ReadLine());
            read.Close();
            // Tăng biến count_visit thêm 1
            count_visit++;
        }
        // khóa website
        Application.Lock();
        // gán biến Application count_visit
        Application["count_visit"] = count_visit;
        // Mở khóa website
        Application.UnLock();
        // Lưu dử liệu vào file  count_visit.txt
        System.IO.StreamWriter writer = new System.IO.StreamWriter(Server.MapPath("~/count_visit.txt"));
        writer.WriteLine(count_visit);
        writer.Close();
        if (Session["online"] == null)
        {
            Session["online"] = 1;
        }
        else
        {
            Session["online"] = int.Parse(Session["online"].ToString()) + 1;
        }

Khi đọc đoạn code trên các bạn có thể thấy quy trình tạo module của mình như sau:
Mình sử dụng 1 file count_visit.txt để lưu trữ số lượt truy cập count_visit. Điều này sẽ tốt hơn là bạn sử dụng 1 biến Application để lưu trữ số lượt truy cập vì nếu bạn chuyển server hoặc server của bạn khởi động lại hoặc bảo trì thì biến đó sẽ bị reset lại. Tiếp theo mình sẽ kiểm tra xem file đó có tồn tại hay không. Nếu không thì có nghĩa là ứng dụng mới chạy lần đầu vào bắt đầu tạo file và ghi. Nếu có thì mình sẽ đọc số lượt visit đã được ghi vào trong đó và sau đó cộng thêm 1 vào và ghi ngược trở lại file.
Còn biến session thì sẽ check xem nó đã được tạo hay chưa và nếu nó(có người đang online) có rồi thì cộng thêm 1 vào nó( cộng thêm một người vừa online vào số người đang online). Và trong sự kiện Session_End mình sẽ trừ bớt đi.

Session["online"] = int.Parse(Session["online"].ToString()) - 1
Trong module bạn sẽ gọi 2 biến này ra:
<table>
    <tr>
        <td><label>Tổng số lượt truy cập</label></td>
        <td><%=Application["count_visit"].ToString() %></td>
        </tr>
        <tr>
            <td><label>Số người đang online:</label></td>
            <td><%=Session["online"].ToString() %></td>
        </tr>
        <tr>
    </table>
 
Chúc các bạn thành công!

Tạo module dự báo thời tiết với ASP.NET

Bước 1: Để tránh tình trạng phải load lại trang vì các trang asp.net có cơ chế postback để lấy mới dữ liệu nên chúng ta sẽ sử dụng ScriptManager và UpdatePanel để tạo module.

<form id="form1" runat="server">
<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server"
                onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                <asp:ListItem Value="SonLa">Sơn La</asp:ListItem>
                <asp:ListItem Value="Haiphong">Hải Phòng</asp:ListItem>
                <asp:ListItem Value="Hanoi" Selected="True">Hà Nội</asp:ListItem>
                <asp:ListItem Value="Vinh">Vinh</asp:ListItem>
                <asp:ListItem Value="Danang">Đà Nẵng</asp:ListItem>
                <asp:ListItem Value="Nhatrang">Nha Trang</asp:ListItem>
                <asp:ListItem Value="Pleicu">Pleiku</asp:ListItem>
                <asp:ListItem Value="HCM">Tp HCM</asp:ListItem>
                <asp:ListItem Value="Viettri">Việt Trì</asp:ListItem>
            </asp:DropDownList>
            <div id="divWeather" runat="server"></div>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>
Bước 2: Chúng ta sẽ viết code trong phần behindcode:
public string GetWeather(string City)
{
    string strWrite = "";
    XmlTextReader reader = null;
    try
    {
        string AdImg = "";
        string AdImg1 = "";
        string AdImg2 = "";
        string Weather = "";
        reader = new XmlTextReader("http://vnexpress.net/ListFile/Weather/" + City + ".xml");
        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(reader);
        XmlNodeList nodelist = xmldoc.SelectNodes("Item");
        XmlNode nodedetail;
        nodedetail = nodelist.Item(0).SelectSingleNode("AdImg");
        AdImg = nodedetail.InnerText;
        nodedetail = nodelist.Item(0).SelectSingleNode("AdImg1");
        AdImg1 = nodedetail.InnerText;
        nodedetail = nodelist.Item(0).SelectSingleNode("AdImg2");
        AdImg2 = nodedetail.InnerText;
        nodedetail = nodelist.Item(0).SelectSingleNode("Weather");
        Weather = nodedetail.InnerText;
        strWrite += "<img src='Images/Weather/" + AdImg + "' border='0' width='36' height='35' />&nbsp;";
        strWrite += "<img src='Images/Weather/" + AdImg1 + "' border='0' width='19' height='28' />";
        strWrite += "<img src='Images/Weather/" + AdImg2 + "' border='0' width='19' height='28' />";
        strWrite += "<img src='Images/Weather/c.gif' width='35' height='28' /><br />";
        strWrite += Weather;
    }
    catch (Exception ex)
    {
        strWrite = ex.Message;
    }
    finally
    {
        reader.Close();
    }
    return strWrite;
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        divWeather.InnerHtml = GetWeather(DropDownList1.SelectedValue);
    }
 
Bước 3: Lần đầu load lên chúng ta nên có một thành phố nào đó nên trong event Page_Load chúng ta sẽ hiển thị 1 thành phố nào đó.
    divWeather.InnerHtml = GetWeather("HaNoi");
 Bước 4: Tới đây là ok. Chúng ta save và F5 thôi:

module thoi tiet aspnet

Đây là source code bạn có thể download module dự báo thời tiết asp.net

TỐI ƯU HÓA CHO CSS CHO SEO - PHẦN 2

6. Rút gọn cú pháp css của một thành phần:
Thẻ p của bạn có css như sau:

p {
font-family: Georgia, serif;
font-weight: normal;
line-height: 1.33em;
font-size: 1.33em;
}
Bạn nên viết gọn lại:
p {
font: normal 1.33em/1.33 Georgia, serif;
}
Hay như bạn có thuộc tính margin cho div như sau:
margin-top:    10px;
margin-right:  20px;
margin-bottom: 10px;
margin-left:   20px;
Bạn có thể viết gọn lại là:
 margin: 10px 20px ;
7. Các giá trị số.
Bạn có:
padding:0px;
thì bạn có thể viết thành:
 padding:0;
Đối với các thuộc tính có 4 giá trị đối xứng nhau như ở ví dụ margin ở trên thì bạn nên viết lại thành 2 giá trị nếu chúng có giá trị giống nhau.
8. Cách viết comment
Comment trong css sẽ giúp bạn quản lí code tốt hơn nhưng comment thế nào cho hợp lí?
Nếu những comment không cần thiết thì bạn có thể bỏ, còn những comment khác thì bạn nên viết ngắn gọn xúc tích, mang nội dung phù hợp. Không nên viết comment theo kiểu này:
/************************************/
/*          Content Styles            */
/************************************/
Mà bạn nên viết lại thành:
/* content styles */
9.Nén CSS lại
Hạn chế việc xuống dòng và bạn có thể bỏ dấu ";" ở giá trị thuộc tính cuối cùng:
h2 {
    font-family:verdana;
    padding:0;
    margin:5px 0;
    color:#333;
    text-decoration:underline;
}

Viết lại thành:
h2 {font-family:verdana;padding:0;margin:5px 0;color:#333;text-decoration:underline}
10. Sử dụng một vài công cụ giúp bạn tối ưu hóa và nén CSS online
CSS Optimizer
Flumpcakes CSS Optimizer
Clean CSS
CSS Drive CSS Compressor
Online YUI Compressor
Style Neat

11. CSS Sprite

Có thể đây là một khái niệm lại đối với 1 vài bạn nhưng nó khá hữu ích trong việc css cho ảnh. Ảnh là một tài nguyên chiếm khá nhiều băng thông và dung lượng trên server nên việc sprite ảnh là việc rất cần thiết. Để sử dụng CSS sprite cần có skill khá tốt trong css. Mình sẽ nói kĩ hơn về CSS Sprite trong một bài khác.

12. Validate CSS.

Sau khi làm xong bạn nên validate CSS để biết mình có sai ở đâu hay không, hay code vẫn chưa được chuẩn hóa. Có khá nhiều những validator CSS mình xin giới thiệu 1 cái của w3c: http://jigsaw.w3.org/css-validator/

Hy vọng với chút ít kiến thức trên bạn có thể hiểu thêm về css và seo.

Đọc Phần 1

Tối ưu hóa cho CSS cho SEO - phần 1

CSS là một phần không thể thiếu trong thiết kế. Nó chính là cách hiển thị giao diện bên ngoài của mỗi website. Nhưng không phải ai trong chúng ta cũng biết cách để tối ưu hóa chúng cho SEO cũng như tăng tốc cho web.
Hôm nay mình xin giới thiệu với mọi người một số cách mình học hỏi và tham khảo được.
1.Kết hợp mã màu.
- Nếu bạn có 1 background màu thuần(không có hiệu ứng gradient) thì bạn nên xem mã màu của nó để tạo css không nên sử dụng background ảnh nền.
- Nếu mã màu của bạn có dạng như #fffff hoặc background-color:rgb(226,226,226) thì bạn nên đưa nó về dạng
#fff và #226.(các dạng mã màu có thể chuyển đổi như #xxxxxx->#xxx, #xxyyzz->#xyz...)
2. Các thành phần có thuộc tính trùng lặp thì nên viết gọn lại.

p {
font-family: Arial;
font-weight: normal;
line-height: 1.33em;
font-size: 1.22em;
}

p {
font-family: Georgia, serif;
font-weight: normal;
line-height: 1.33em;
font-size: 1.33em;
}
Các bạn có thể viết gọn lại thành:
p {
font-family: Georgia, serif;
font-weight: normal;
line-height: 1.33em;
font-size: 1.33em;
}
 

Nếu bạn muốn 2 thành phần p này có điểm khác biệt thì có thể đặt chúng vào các class khác nhau và thêm các thuộc tính khác biệt của chúng. Còn các phần trùng lặp ta nên để vào chung.
3. Đưa CSS ra một file riêng.
Nếu trong một trang mà chúng ta có đoạn css khá dài chúng ta nên để chúng ra 1 file riêng và dùng thẻ link để link tới chúng.
4. Gộp tất cả các file CSS vào 1 file nếu có thể
Ví dụ trong 1 trang mà bạn có khoảng 4 hoặc 5 file css thì mỗi lần request nó sẽ phải gửi 4 hoặc 5 request tới server điều này sẽ làm chậm lại tốc độ load của trang web. Vì thế bạn có thể gộp chúng lại 1 thành 1 file. Nhưng ở đây mình dùng từ nếu có thể có nghĩa là không phải lúc nào ta cũng gọp chúng lại. Nếu có các css tách biệt hoàn toàn với các css khác như css của 1 jquery plugin bạn download được thì bạn nên để riêng để còn dễ sửa đổi hoặc thay thê.
5.Gộp các định dạng CSS giống nhau lại
Ví dụ bạn có 1 CSS như sau:

h1 {padding:5px 0; font-family:verdana; font-weight:700;}
#box1 .heading  {padding:5px 0; font-family:verdana; font-weight:700;}
#box2 .heading  {padding:5px 0; font-family:verdana; font-weight:700;}
#nav a.home {padding:5px 0; font-family:verdana; font-weight:700; background:#fff url(home.gif) no-repeat 5px 5px}
#nav a.portfolio {padding:5px 0; font-family:verdana; font-weight:700; background:#fff url(portfolio.gif) no-repeat 5px 5px}
#nav a.contact {padding:5px 0; font-family:verdana; font-weight:700; background:#fff url(contact.gif) no-repeat 5px 5px}
#nav a.about {padding:5px 0; font-family:verdana; font-weight:700; background:#fff url(about.gif) no-repeat 5px 5px}
Bạn có thể thấy có khá nhiều các thuộc tính như padding, font-weight, font-family... được lặp lại chúng ta nên gộp chúng lại:
h1, #box1 .heading, #box2 .heading  {padding:5px 0; font-family:verdana; font-weight:700}
#nav a {padding:5px 0; font-family:verdana; font-weight:700; background:#fff no-repeat 5px 5px}
#nav a.home {background:url(home.gif)}
#nav a.portfolio {background:url(portfolio.gif)}
#nav a.contact {background:url(contact.gif)}
#nav a.about {background:url(about.gif)}
Như thế này chúng sẽ dễ nhìn hơn.

Đọc phần 2

TÀI LIỆU HỌC HTML 5 VÀ CSS3

HTML5CSS3 là tương lai của web. Nó được coi như là nền tảng để đưa web lên một tầm cao mới. Có rất nhiều bạn muốn tìm hiểu về HTML5 và CSS3. Các bạn có thể tải tài liệu tại đây.
HTML5:
http://www.mediafire.com/?bwex2tt5waefavn
Các bạn có thể tìm hiểu thêm tại đây:
http://w3schools.com/html5/default.asp
CSS3:
http://www.mediafire.com/?dn2qf6ktxhyi0df
http://w3schools.com/css3/default.asp
Đây là một slide của ntuts.com. Link này khá hay:
http://ntuts.com/demo/slide-html5-css3/#slide1

10 BÍ QUYẾT TRONG LẬP TRÌNH AJAX

Giờ đây, khi nhắc đến Ajax, chắc hẳn bạn - những người yêu thích lập trình - không còn cảm thấy xa lạ như trước kia mà thậm chí còn hình dung ra sự giản đơn và thuận tiện biết bao khi ứng dụng nó. Nhưng, liệu bạn đã nắm vững những quy tắc then chốt, những “mẹo nhỏ” hữu ích khi lập trình với Ajax chưa nhỉ? Dù bạn đã rõ hay...trót quên, vẫn xin mời bạn tham khảo bài viết này như một cách ôn lại kiến thức trọng tâm đầy bổ ích!
A. 10 lưu ý vàng cần ghi nhớ


1. Đánh dấu trang và quay lại
Khi tự bạn điều khiển những gì đang diễn ra trên website, sử dụng JavaScript để làm xuất hiện hay biến mất các đối tượng trên trang hay thậm chí là sau khi toàn bộ trang được hiển thị hoàn toàn, bạn sẽ nhanh chóng nhận ra rằng, nút Quay lại (Back) của trình duyệt đã mất hoàn toàn tác dụng! Nút Quay lại này hoạt động bằng cách dùng đối tượng ‘history’ của trình duyệt, lưu lại danh sách tất cả các trang đã được truy cập liên tiếp gần đây nhất. Nhưng, nếu bạn không mở bất kỳ trang mới nào (vâng, như bạn biết, Ajax không cần phải refresh trang khi cần hiển thị thông tin), thì đối tượng ‘history’ kia rõ ràng chẳng lưu được chút manh mối gì. Đây là điều bạn cần lưu ý khi viết các ứng dụng Ajax.
Và nếu như cần thiết, hãy trang bị cho site của bạn một nút Back của riêng mình. Người dùng có thể muốn quay lại cửa sổ trước đó và bạn có nhiệm vụ phải lưu giữ những thông tin di chuyển này. Thật đáng tiếc là ngay cả tiện ích đánh dấu trang (Bookmark) cũng trở nên vô dụng như thế! Đáp án cụ thể cho bài toán này ra sao, xin được dành câu trả lời cho bạn nghiên cứu.


2. Đưa ra thông báo trực quan
Phần lớn thời gian của mình, Ajax hoạt động một cách “thầm lặng” và điều này đôi khi “làm khó” người dùng. Nếu bạn tải về một lượng lớn thông tin và đang chờ đợi phản hồi từ phía máy chủ, chắc chắn một hình ảnh “nhấp nháy” nào đấy sẽ vô cùng có ích với người dùng. Một chiếc đồng hồ cát xoay tròn, và khách hàng sẽ biết rằng họ cần kiên nhẫn! Bức hình này nên là dạng ảnh động (.gif), đồng thời phối hợp với đoạn mã JavaScript dưới đây, hiệu ứng “ẩn, hiện” sẽ càng thêm phần thú vị:
document.getElementById(“image1”).style.visibility= “visible”;
document.getElementById(“image1”).style.visibility= “hidden”;
Rõ ràng rằng, người dùng luôn muốn thấy một tín hiệu nào đấy báo cho họ biết rằng kết nối đang được thực hiện, dạng như thanh tiến trình màu xanh với các gạch nối càng lúc càng đầy cũng là một ý tưởng không tồi, và chắc chắn họ sẽ hài lòng với site của bạn!


3. Hãy để người dùng "tự nhiên"
Các ứng dụng Ajax dường như đang tự mình thi hành “phận sự” bởi chúng được thực thi phía sau giao diện người dùng. Chúng luôn sẵn sàng kết nối tới server, ngay cả khi người dùng không hề mong muốn – trong trường hợp họ vô tình gõ nhầm thông tin chẳng hạn. Rất dễ hình dung cảm giác lúc đó của bạn ra sao, khi ngay lúc bạn vừa gõ một chữ nào đấy, lập tức thông tin này đã được lưu lại database mà chẳng hề “xin phép” lấy một lời. Vậy nên, để tốt nhất, bạn hãy lưu ý một số điều nhỏ sau:
- Đừng bao giờ lưu thông tin ngay lập tức, vừa tốn băng thông mà chưa chắc đã được sự đồng ý của người dùng.
- Hãy nhớ rằng, người dùng luôn muốn “giao tiếp” nhiều hơn với ứng dụng. Hãy làm các thủ tục xác thực dữ liệu ngắn gọn hơn, đỡ mất thời gian hơn và cho người dùng quyền quyết định khi nào thì cần xác thực. Đấy chính là yếu tố tiên quyết trong quá trình thiết kế giao diện người dùng!
- Cuối cùng, đừng quên cung cấp cho người dùng cách thức “sửa sai” thao tác (Undo).


4. Ghi nhớ các trình duyệt
Thế giới thật rộng lớn và cũng có rất nhiều trình duyệt! Người dùng sử dụng trình duyệt họ yêu thích, còn bạn, sẽ ra sao khi chỉ kiểm tra ứng dụng của mình trên một loại trình duyệt mà thôi? Sẽ thật tệ nếu bạn chỉ viết riêng cho Internet Explorer, Firefox mà quên mất rằng, trong thế giới World Wide Web, có vô vàn trình duyệt khác nhau, có loại thậm chí còn không hỗ trợ JavaScript, loại khác lại mặc định tắt chúng đi! Hãy ghi nhớ điều này và xây dựng trước một phương án dự phòng không bao giờ là thừa cả.


5. Cho người dùng thấy sự thay đổi
Sức mạnh của Ajax chính là việc hiển thị dữ liệu trên một trang không cần refresh bằng cách dùng thẻ <meta id="refresher"> hay ngay cả các đối tượng thuần HTML như textbox chẳng hạn. Ứng dụng Ajax có thể thay đổi dữ liệu ngay sau khi chúng thông báo tới server, nhưng lại không thông báo với người dùng. Lấy ví dụ, bạn có một bảng dữ liệu và mặc định rằng sẽ được tự động cập nhật ngay khi database có thay đổi. Người dùng có thể không nhận thấy rằng thông tin đã không còn như trước, rằng bạn đã thay đổi thành phần trang, và đương nhiên là họ đã hụt mất những thông tin quan trọng. Lại một lần nữa, việc phát ra “tín hiệu” thay đổi tới người dùng sẽ giúp bạn rất nhiều. Nếu bạn vừa thay đổi một số chữ, đơn giản thôi, hãy làm cho nó hiển thị khác đi một chút. Đoạn mã sau dùng để thay đổi màu chữ trong thẻ <Div> thành màu đỏ bằng cách sử dụng linh hoạt thuộc tính style:
document.getElementById(“targetDiv”).style.color = “red”;
Còn nếu bạn muốn thay đổi màu nền, hãy dùng đoạn mã
document.getElementById(“targetDiv”).style.background-color = “red”;
Trong đó, “targetDiv” là mã ký hiệu của thẻ Div mà bạn gán cho.


6. Tránh làm chậm trình duyệt
Những ứng dụng Ajax có thể rất lớn và chắc chắn chiếm dụng một lượng tài nguyên vật lí không nhỏ. Tốc độ CPU, bộ nhớ RAM có thể bị “ngốn” rất nhiều nếu như bạn không quan tâm xử lí những đối tượng phức tạp trong quá trình khởi tạo hay tham chiếu. Thông thường, một số nhà phát triển ứng dụng lại xài Ajax cũng chỉ bởi vì nó đang “nóng”!! Quan niệm này cần được lưu tâm hơn! Đúng vậy, Ajax có thể giải quyết được nhiều vấn đế, nhưng bạn không nhất thiết phải dùng nó nếu chẳng có lí do gì. Đừng quên rằng, không phải trình duyệt nào cũng hỗ trợ Ajax (hoặc thậm chí ở chế độ mặc định tắt JavaScript). Vậy nên, đừng vì độ “hot” của Ajax mà quên đi mất tính khả dụng và tôc độ của chương trình bạn nhé!


7. Quản lý những thông tin riêng tư
Với Ajax, thật dễ để bạn gửi thông tin lên server mà không cần sự chú ý của người dùng. Nói theo cách khác, quá trình liên lạc giữa máy khách (client) và máy chủ (server) được diễn ra một cách “thầm lặng”. Nhưng sự thật là, không phải người dùng nào cũng muốn gửi thông tin lên server ngay. Bạn hãy lưu tâm đến vấn đề nhạy cảm này! Mặc dù thương mại điện tử tại Việt Nam chỉ mới chập chững những bước đầu tiên, những tổn thất xảy ra là điều không thể tránh khỏi, nhưng chính vì thế bạn càng phải nâng cao tinh thần bảo vệ người dùng. Internet rõ ràng đầy rẫy những cạm bẫy và sự thật thì môi trường này không phải là nơi hoàn hảo để lưu giữ thông tin có tính riêng tư. Nếu bạn định gửi mã số Thẻ tín dụng hoặc mã Bảo mật của thẻ mà không được sự đồng ý của người dùng, rất có thể bạn sẽ phải đói mặt với nhiều rắc rối! Do đó, hãy cho người dùng thấy được lợi ích của việc hoài nghi: Luôn hỏi trước khi gửi dữ liệu!


8. Xây dựng phương án dự phòng
Sự sống còn của Ajax phụ thuộc vào tín hiệu kết nối tới server, nhưng người dùng thì không phải lúc nào cũng trực tuyến. Server của bạn có thể bị “chết đứng” bất cứ lúc nào, và người dùng rất có thể đang làm việc với các thông tin được lưu trong bộ đệm trình duyệt từ trước đó! Nếu bạn không thể kết nối đến server khi đang online, thì việc xây dựng một phương án dự phòng là rất cần thiết (một server dự trữ chẳng hạn). Cũng đừng quên việc hỗ trợ các trình duyệt không có JavaScript nữa nhé!


9. Hiển thị thông tin trên các cỗ máy tìm kiếm
Cơ chế tìm kiếm của Google dựa trên việc sàng lọc thông tin từ hàng tỉ website theo thông số mà người dùng cung cấp, nhưng ứng dụng Ajax của bạn lại load thông tin lên dựa trên sự tương tác của người dùng mà chẳng cần refresh lại trang - điều này khiến Google sẽ không thể “nhìn” thấy được những thông tin như thế. Vậy nên ghi nhớ kỹ rằng, để thông tin trên website của bạn có thể được các cỗ máy tìm kiếm “mò” tới, bạn cần cung cấp những dữ liệu đặc tả nội dung trang. Làm điều này như thế nào? Không khó! Chỉ cần sử dụng các thẻ<meta> đặt trong phân đoạn của mã trang, các cỗ máy tìm kiếm có thể “đánh dấu” bạn dễ dàng! Và nếu thực sự hứng thú về các thẻ <meta> này, mời bạn ghé qua địa chỉ sau đây để tìm hiểu thêm cặn kẽ:http://www.seocentro.com/tools/search-engines/metatag-analyzer.html


10. Cuối cùng, xin lưu ý đến bộ đệm trình duyệt
Một số trình duyệt như Internet Explorer thường lưu lại thông tin về các website đã truy cập trong bộ đệm riêng của nó (thuật ngữ chuyên ngành gọi là “cache”). Điều này đồng nghĩa với việc, nếu ai đó truy cập đến cùng một địa chỉ URL trong một khoảng thời gian giới hạn nào đấy, thông tin hiện lên cho họ có thể chính là những thông tin vừa xem (được lấy ra từ cache).
Về nguyên tắc, điều này làm quá trình tải trang nhanh chóng hơn, các thông tin được coi là giống với lần truy cập trước có thể sẽ không cần phải tải về lần nữa, mà chỉ cần lấy từ cache ra và hiển thị lên. Nhưng với các website có ứng dụng Ajax thì đây đúng là một vấn đề lớn! Tại sao lại như vậy? Rất đơn giản, ở Ajax không có tính năng làm mới toàn bộ trang mà chỉ là một vài thành phần trong trang! Do đó, nếu khi bạn đã thay đổi dữ liệu trên trang mà kết quả trả về giống hệt như lúc trước thì không còn nghi ngờ gì nữa, bạn chắc hẳn đã gặp rắc rối rồi! Vậy nên, để hạn chế việc lưu thông tin đệm trong ứng dụng Ajax, bạn có thể đặt nhiều thông số header khác nhau khi gửi trả dữ liệu từ server, như đoạn code PHP dưới đây:
header(“Cache-Control”, “no-cache”);
header(“Du-lieu-header-tuy-y”, “no-cache”);
header(“Expires”, “-1”);
Mặc dù vậy, đoạn code trên lại không có tác dụng gì với Internet Explorer do việc lưu thông tin trong cache của IE lại phụ thuộc phần lớn vào địa chỉ trình duyệt. Do đó, có một cách rất hay là luôn thay đổi địa chỉ ứng dụng khi truy vấn đến server. Để làm điều này, bạn chỉ cần khai báo một biến ngẫu nhiên nào đấy (mà server chẳng dùng làm gì) vào phần cuối của địa chỉ, chẳng hạn như:
var myUrl = “data.php?name=bcvt” + “&t=” + new Date().getTime();
Một ý tưởng không tồi khi đưa thêm biến “t” vào địa chỉ URL trên, với “t” là thời gian hiện tại tính bằng mili giây. Vì địa chỉ này chắc chắn chưa từng được truy cập, nó sẽ không bị lưu trong bộ đệm cache trước đây và ứng dụng của bạn chắc chắn sẽ chạy “ngon lành”!


B. Lời kết
Như bạn thấy đó, việc lập trình Ajax tuy hết sức thú vị những cũng ẩn chứa nhiều “rắc rối nho nhỏ” phải không nào? Nếu không biết cách khắc phục chúng hoặc không để ý lưu tâm, các ứng dụng của bạn rất có thể sẽ hoạt động không được như mong muốn khi thiết kế. Hy vọng qua bài viết, các bạn hiểu được phần nào những “yếu điểm” của Ajax để từ đó tìm tòi hơn, sáng tạo ra những “chiêu thức” khắc phục cho riêng mình.

Theo TC BCVT & CNTT

KIỂM TRA GOOGLE PAGERANK TRONG ASP.NET

Google Pagerank là một chỉ số quan trọng trong SEO. Nhưng bạn đã biết cách để kiểm tra nó với ASP.NET. Hôm nay mình xin giới thiệu cho các bạn cách để tạo ra một module để check google pagerank. Module chỉ mang tính chất demo nên mình sẽ làm đơn giản.
Bước 1: Giao diện

<div>
            Nhập tên miền: <asp:TextBox ID="txtDomain" runat="server"/>
            <asp:Button ID="btnCheck" runat="server" Text="Check" onclick="btnCheck_Click"
                style="height: 26px" /><br />
            Google Pagerank <asp:Label ID="lbPageRank" runat="server" />
    </div>
Bước 2: Tạo class check Pagerank
Đây là những thuật toán mà google sẽ sử dụng để check pagerank cho bạn.
public class GooglePR
{
    public GooglePR()
    {
    }
    private const UInt32 myConst = 0xE6359A60;
    private static void _Hashing(ref UInt32 a, ref UInt32 b, ref UInt32 c)
    {
        a -= b; a -= c; a ^= c >> 13;
        b -= c; b -= a; b ^= a << 8;
        c -= a; c -= b; c ^= b >> 13;
        a -= b; a -= c; a ^= c >> 12;
        b -= c; b -= a; b ^= a << 16;
        c -= a; c -= b; c ^= b >> 5;
        a -= b; a -= c; a ^= c >> 3;
        b -= c; b -= a; b ^= a << 10;
        c -= a; c -= b; c ^= b >> 15;
    }
    public static string PerfectHash(string theURL)
    {
        string url = string.Format("info:{0}", theURL);
        int length = url.Length;
        UInt32 a, b;
        UInt32 c = myConst;
        int k = 0;
        int len = length;
        a = b = 0x9E3779B9;
        while (len >= 12)
        {
            a += (UInt32)(url[k + 0] + (url[k + 1] << 8) +
                 (url[k + 2] << 16) + (url[k + 3] << 24));
            b += (UInt32)(url[k + 4] + (url[k + 5] << 8) +
                 (url[k + 6] << 16) + (url[k + 7] << 24));
            c += (UInt32)(url[k + 8] + (url[k + 9] << 8) +
                 (url[k + 10] << 16) + (url[k + 11] << 24));
            _Hashing(ref a, ref b, ref c);
            k += 12;
            len -= 12;
        }
        c += (UInt32)length;
        switch (len)
        {
            case 11:
                c += (UInt32)(url[k + 10] << 24);
                goto case 10;
            case 10:
                c += (UInt32)(url[k + 9] << 16);
                goto case 9;
            case 9:
                c += (UInt32)(url[k + 8] << 8);
                goto case 8;
            case 8:
                b += (UInt32)(url[k + 7] << 24);
                goto case 7;
            case 7:
                b += (UInt32)(url[k + 6] << 16);
                goto case 6;
            case 6:
                b += (UInt32)(url[k + 5] << 8);
                goto case 5;
            case 5:
                b += (UInt32)(url[k + 4]);
                goto case 4;
            case 4:
                a += (UInt32)(url[k + 3] << 24);
                goto case 3;
            case 3:
                a += (UInt32)(url[k + 2] << 16);
                goto case 2;
            case 2:
                a += (UInt32)(url[k + 1] << 8);
                goto case 1;
            case 1:
                a += (UInt32)(url[k + 0]);
                break;
            default:
                break;
        }
        _Hashing(ref a, ref b, ref c);
        return string.Format("6{0}", c);
    }
    public int MyPR(string myURL)
    {
        string strDomainHash = PerfectHash(myURL);
        string myRequestURL = string.Format("http://toolbarqueries.google.com/" +
               "tbr?client=navclient-auto&ch={0}&features=Rank&q=info:{1}",
               strDomainHash, myURL);
        try
        {
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(myRequestURL);
            string myResponse = new StreamReader(
                   myRequest.GetResponse().GetResponseStream()).ReadToEnd();
            if (myResponse.Length == 0)
                return 0;
            else
                return int.Parse(Regex.Match(myResponse,
                       "Rank_1:[0-9]:([0-9]+)").Groups[1].Value);
        }
        catch (Exception)
        {
            return -1;
        }
    }
}
 
Bước 3: Sử dụng lớp khai báo trên
protected void btnCheck_Click(object sender, EventArgs e)
    {
        GooglePR pr = new GooglePR();
        string url = txtDomain.Text; ;
        int google_page_rank = pr.MyPR(url);
        lbPageRank.Text ="của "+url+" là : "+ google_page_rank.ToString();
    }
Và đây là kết quả:

pagerank

pagerank

Chúc các bạn thành công!

Cách sử dụng ReCaptcha Trong Web ASP.NET

Trên các web hiện nay bạn đều thấy còn một loại captcha  được sử dụng khá phổ biến đó là  Google Recaptcha. Bài viết này mình xin hướng dẫn các bạn cách đăng kí và sử dụng captcha này.
Bước 1: Đăng kí recaptcha
Các bạn hãy vào trang http://www.google.com/recaptcha để đăng kí 1 tài khoản.

nhung recaptcha vao web aspnet

Sau khi đăng kí tài khoản thì bạn sẽ nhận được 1  public key và 1 private key. Bạn hãy copy lại 2 key này.

tao captcha trong asp.net

Để lấy được 2 key này bạn cần phải nhập tên website của bạn(không cần thiết phải chính xác).
Sau đó bạn hãy download recaptcha dll về tại đây
Bước 2: Tạo ứng dụng web sử dụng recaptcha
Tiếp theo bạn hãy tạo 1 ứng dụng web asp.net và Add Reference tới recaptcha dll mà bạn vừa download được.
Bạn hãy register dll cho trang bạn sử dụng.

<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>
Tiếp theo là phần giao diện:
<div>
         <recaptcha:RecaptchaControl    ID="recaptcha"
    runat="server"
    PublicKey="6LckeNQSAAAAAFpwu4ywENBgCFsPYarPC0aGpFub"
    PrivateKey="6LckeNQSAAAAAHJDm6_cj8kSKiBFrgArARhCpUWH"
    Theme="white"
    />
   <asp:Label Visible="false" ID="lblResult" runat="server" />
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" />
  </div>
Phần giao diện gồm có recaptcha control, label thông báo lỗi và 1 button submit.
Và bây giờ chúng ta code cho phần behind code.
protected void Page_Load(object sender, EventArgs e)    {
        lblResult.Visible = false;
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        lblResult.Visible = true;
        if (!recaptcha.IsValid)
        {
            lblResult.ForeColor = Color.Red;
            lblResult.Text = "Captcha is invalid.";
        }
        else
        {
            lblResult.ForeColor = Color.Green;
            lblResult.Text = "Captcha is valid";
        }
    }
Bây giờ save và run thôi:

nhung recaptcha vao web aspnet

nhung recaptcha vao web aspnet

OK, ngoài ra các bạn cũng phải có thể tùy biến theme cho recaptcha. ở đây mình dùng theme white, các bạn có thể dùng theme blackglass, red(theme mặc định,clean).
Các bạn có thể vào đây tham khảo thêm :https://developers.google.com/recaptcha/

Chúc bạn thành công!