Lập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptLập trình web chạy ở phía ClientJavaScriptPowerPoint Presentation MÔN HỌC LẬP TRÌNH TRÊN NỀN WEB Đại học Sư phạm Hà Nội 2 KHOA CÔNG NGHỆ THÔNG TIN Trình bày Nguyễn Xuân Trường xuantruong12121991gmail com NỘI DUNG MÔN HỌC 1 Tổng quan về lập t.
Trang 2NỘI DUNG MÔN HỌC
1 Tổng quan về lập trình trên nền web
2 Các mô hình kiến trúc phần mềm
3 Ngôn ngữ HTML
4 Lập trình web chạy ở phía Client
5 Lập trình web chạy ở Server
11/09/2015 xuantruong12121991@gmail.com 2
Trang 3LẬP TRÌNH WEB CHẠY Ở PHÍA
Trang 4NỘI DUNG
• Tổng quan về Script
• Ngôn ngữ kịch bản JavaScript
11/09/2015 xuantruong12121991@gmail.com 4
Trang 5NỘI DUNG
Kết thúc chương này người học có thể:
• Viết các câu lệnh JavaScript và nhúng vào
Trang 6Ngôn ngữ kịch bản Script
• Tổng quan:
• Là ngôn ngữ hỗ trợ lập trình Web
• Là ngôn ngữ lập trình kiểu thông dịch
• Gắn với các file HTM giúp các trang Web có khả
năng tương tác
• Các ngôn ngữ thông dụng
• JavaScript (do Netscapte phát triển)
• VBScript (do Microsoft phát triển)
11/09/2015 xuantruong12121991@gmail.com 6
Trang 9Ngôn ngữ kịch bản Script
• Cú pháp khi dùng cặp thẻ <SCRIPT> :
<script language=“ JavaScript / Vscript/ …”>
//các khai báo biến // các lệnh
//các lệnh gọi hàm và các hàm
}
</script>
• Cú pháp khi sử dụng file Script (*.js) đã có:
<script language="JavaScript / Vscript/…"
src="*.js/*.vbs/…"></script>
(tách 2 slide) Lập trình mạng – Chương 5 9
Trang 10Ngôn ngữ kịch bản Script
Ví dụ mô hình hoạt động
11/09/2015 xuantruong12121991@gmail.com 10
Trang 11JavaScript
Nội Dung
• Biến, kiểu dữ liệu
• Số, mảng, chuỗi, đối tượng
• Các cú pháp:
• Gán, điều kiện, lặp
• Hàm, đối tượng hàm
• Sử dụng các đối tượng trong HTML
• document, form, frame, window …
• Xử lý các sự kiện của các đối tượng giao diện
• Xử lý sự kiện timer
• Sử dụng JavaScript trong kiểm tra dữ liệu Form
• Sử dụng JavaScript trong xử lý hiệu ứng
11/09/2015 xuantruong12121991@gmail.com 11
Trang 12Biến số
• Cách đặt tên biến
• A Z,a z,0 9,_ : phân biệt HOA, thường
• Khai báo biến
• Dùng từ khóa var (var count=10, amount;)
• Thật sự tồn tại khi bắt đầu sử dụng lần đầu tiên
• Phạm vi sử dụng biến
• Toàn cục, cục bộ(trong hàm)
11/09/2015 xuantruong12121991@gmail.com 12
Trang 13Kiểu dữ liệu
• Kiểu số: số nguyên, thực
• Boolean: True or False
• Chuỗi: “Hello World”
Trang 14JavaScript
Chuyển kiểu dữ liệu
• Biến số tự đổi kiểu dữ liệu khi giá trị thay
đổi
• Ví dụ, var x = 10
• sau đó ta có thể đổi x: x= “I change your value?”
• Có thể cộng hai biến khác kiểu dữ liệu
• “12”+ 34.5 kết quả “1234.5”
• Hàm parseInt(), parseFloat():
• đổi chuỗi sang số
11/09/2015 xuantruong12121991@gmail.com 14
Trang 15• Biểu thức điều kiện:
• status = (age >= 18) ? "adult" : "minor“(sua)
11/09/2015 xuantruong12121991@gmail.com 15
Trang 16JavaScript
Mảng -Array
• Dùng để lưu các biến dùng chung tên
• Chỉ số bắt đầu từ 0
• Không có kiểu dữ liệu rõ ràng
• Được tích hợp trong đối tượng kiểu Array (sử dụng
một số các method: pop, push, )
• Cú pháp:
• var Tenmang = new Array(n)
• Để truy xuất tới phần tử thứ i ta viết A[i] (Ví dụ)
11/09/2015 xuantruong12121991@gmail.com 16
Trang 17Hàm trong JavaScript
• Khai báo chung
function <tên hàm>(<danh sách các tham số>){
• Đối tượng this
• Chỉ đối tượng hiện thời
11/09/2015 xuantruong12121991@gmail.com 17
Trang 18Hàm trong JavaScript
function add(x,y) {
Trang 19Các lệnh trong JavaScript
• Các quy tắc chung
• Khối lệnh được bao trong dấu { }
• Mỗi lệnh kết thúc bởi dấu ;
Trang 21case value1: lệnh 1; break;
case value2: lệnh 2; break;
case value3: lệnh 3; break;
Trang 23do
{ //Hành động ; }
while(btĐiều_Kiện);
Trang 25Một số hộp thoại trong Javascript
• Hộp thông báo Alert box
• Cú pháp: alert(“nội dung thông báo”);
• Dùng để xuất nội dung thông báo trong một
Trang 26Một số hộp thoại trong Javascript
• Hộp nhận giá trị Prompt box
• Cú pháp:
prompt(“Gợi ý”,”giá trị mặc định”);
• Dùng để nhập dữ liệu vào và dữ liệu trả về
thông qua tên hàm này
11/09/2015 xuantruong12121991@gmail.com 26
Trang 27Tổng kết nội dung Javascript cơ bản
Các cách chèn Javascript vào HTML
11/09/2015 xuantruong12121991@gmail.com 27
Trang 28Tổng kết nội dung Javascript cơ bản
Các cách chèn Javascript vào HTML
11/09/2015 xuantruong12121991@gmail.com 28
Trang 29Tổng kết nội dung Javascript cơ bản
Các cách chèn Javascript vào HTML
11/09/2015 xuantruong12121991@gmail.com 29
Trang 30Tổng kết nội dung Javascript cơ bản
Các cách chèn Javascript vào HTML
11/09/2015 xuantruong12121991@gmail.com 30
Trang 31Tổng kết nội dung Javascript cơ bản
Các cách chèn Javascript vào HTML
• Ngoài ra chúng ta còn có thể chèn JavaScript
vào sự kiện của các thẻ trong HTML
• Khi sự kiện phát sinh thì mã JavaScript sẽ
được thực thi
• Khi học về sự kiện chúng ta sẽ đề cập cụ
thể hơn
11/09/2015 xuantruong12121991@gmail.com 31
Trang 32Tổng kết nội dung Javascript cơ bản
• Kiểu dữ liệu trong JavaScript
• Không có sự ràng buộc
• Không cần khai báo kiểu khi khai báo biến
• Có thể kiểm tra kiểu của một biến bằng
typeof(tenbien)
11/09/2015 xuantruong12121991@gmail.com 32
Trang 33Tổng kết nội dung Javascript cơ bản
• Các phép toán trong JavaScript
11/09/2015 xuantruong12121991@gmail.com 33
Trang 34Tổng kết nội dung Javascript cơ bản
• Các phép toán logic và so sánh trong JavaScript
11/09/2015 xuantruong12121991@gmail.com 34
Trang 35Nội dung chương sau JavaScript nâng cao
Một số đối tượng
• Đối tượng String
• Đối tượng Array
• Đối tượng Date, Math
• Đối tượng Window
• Đối tượng Frame
• Đối tượng Form
(Gioi thieu day du)
11/09/2015 xuantruong12121991@gmail.com 35
Trang 36Nội dung chương sau JavaScript nâng cao
Trang 37Bài tập
• Câu 1: Sử dụng while và for viết chương trình in ra màn hình trang web các giá trị từ 1-100 mỗi giá trị các nhau một khoảng trắng
• Câu 2: Sử dụng lệnh lặp để in ra màn hình các số chẵn trong khoảng từ 1-50
• Câu3: Cho người dùng nhập vào tên và tuổi Hãy viết lại tên và tuổi của người đó ra màn hình bằng hàm document.write, trong
đó tên có màu đậm, tuổi được gạch chân
• Câu 4: Cho người dùng nhập vào một số nguyên kiểm tra xem
số nguyên đó là tương ứng với thứ mấy trong tuần và in ra chuỗi thông báo nếu không phải thì in ra không chính xác (thứ
tự 1 sẽ là thứ 2 tương tự…)
11/09/2015 xuantruong12121991@gmail.com 37
Trang 39NỘI DUNG MÔN HỌC
1 Tổng quan về lập trình trên nền web
2 Các mô hình kiến trúc phần mềm
3 Ngôn ngữ HTML
4 Lập trình web chạy ở phía Client
5 Lập trình web chạy ở Server
11/09/2015 xuantruong12121991@gmail.com 2
Trang 40LẬP TRÌNH WEB CHẠY Ở PHÍA
Trang 42NỘI DUNG
Kết thúc chương này người học có thể:
• Viết các câu lệnh JavaScript và hiểu được về
cài đặt sự kiện cũng như nhúng các sự kiện vào các thẻ HTML
• Sử dụng thành thạo các đối tượng trong
JavaScript
• Nắm được một số hàm thường hay sử dụng
trong JavaScript
11/09/2015 xuantruong12121991@gmail.com 5
Trang 43JavaScript Nâng cao Các đối tượng cơ bản
Trang 44Các đối tượng cơ bản
• JavaScript là ngôn ngữ lập trình dựa trên
hướng đối tượng
• Trong JavaScript có nhiều đối tượng
(Math, String, Date,…) giúp người lập trình
có thể xử lý các công việc khách nhau
11/09/2015 xuantruong12121991@gmail.com 7
Trang 45Các đối tượng cơ bản
Sơ đồ phân cấp của đối tượng WinDow
11/09/2015 xuantruong12121991@gmail.com 8
Trang 46• Nếu chuỗi được xác định là một biểu thức, hàm
eval sẽ tính toán biểu thức
Trang 48Một số hàm thông dụng
• Hàm isNaN
• Cú pháp: isNaN(testValue)
• TestValue là một số một chuỗi hoặc một tên
biến cần kiểm tra
• Ý nghĩa:
• Được dùng để kiểm tra xem đối số truyền vào
có phải là một số hay không
11/09/2015 xuantruong12121991@gmail.com 11
Trang 50• Thường được sử dụng để chuyển các số nguyên
sang cơ số 10 và đảm bảo rằng các dữ liệu đưọc nhập dưới dạng ký tự được chuyển thành số trước khi tính toán
11/09/2015 xuantruong12121991@gmail.com 13
Trang 51Một số hàm thông dụng
• Hàm parseInt
• Ý nghĩa :
• Trong trường hợp dữ liệu vào không hợp lệ, hàm
parseInt sẽ đọc và chuyển dạng chuỗi đến vị trí nó tìm thấy ký tự không phải là số
• Ngoài ra hàm này chuyển một chuỗi số thành số
nguyên với cơ số là tham số thứ hai (tham số này không bắt buộc)
• Hàm này còn cắt dấu phẩy động
11/09/2015 xuantruong12121991@gmail.com 14
Trang 54Một số hàm thông dụng
• Hàm parseFloat
• Cú pháp: parseFloat (string)
• Ý nghĩa:
• Hàm này giống hàm parseInt nhưng nó
chuyển chuỗi thành số biểu diễn dưới dạng dấu phẩy động
11/09/2015 xuantruong12121991@gmail.com 17
Trang 56ĐỐI TƯỢNG TRONG Javascript
• Javascript là một ngôn ngữ lập trình hướng đối
• Tên đối tượng.Tên thuộc tính;
• Tên đối tượng.Tên phương thức;
11/09/2015 xuantruong12121991@gmail.com 19
Trang 57ĐỐI TƯỢNG TRONG Javascript
11/09/2015 xuantruong12121991@gmail.com 20
Trang 58ĐỐI TƯỢNG TRONG Javascript
• Định nghĩa một đối tượng (Hàm tạo mặc
định)
• Cú pháp: var Tên biến = new Object();
• Sau đó tạo các thuộc tính và phương thức
11/09/2015 xuantruong12121991@gmail.com 21
Trang 59ĐỐI TƯỢNG TRONG Javascript
• Sử dụng hàm tạo
• Cú pháp: function Tên hàm(đối số) {}
11/09/2015 xuantruong12121991@gmail.com 22
Trang 60ĐỐI TƯỢNG TRONG Javascript
• Phương thức cho đối tượng
• Khai báo phương thức
• Khai báo đối tượng và gọi phương thức
11/09/2015 xuantruong12121991@gmail.com 23
Trang 61ĐỐI TƯỢNG TRONG Javascript
11/09/2015 xuantruong12121991@gmail.com 24
Trang 62Sự kiện (Event) trong Javascript
• Sự kiện là một hành động của người dùng tác động
lên ứng dụng đang thực thi:
• Nhấn phím
• Kích chuột,…
• Lập trình hướng sự kiện : các thành phần giao diện có
khả năng nhận biết được các sự kiện từ phía người dùng
• Khả năng đáp ứng tùy thuộc người lập trình cài đặt
• Một trang Web bao gồm các hoạt động và tương
tác(tải, di chuyển, nhập, lựa chọn, nhấp,…) tạo nên
sự kiện của web
11/09/2015 xuantruong12121991@gmail.com 25
Trang 63Sự kiện (Event) trong Javascript
11/09/2015 xuantruong12121991@gmail.com 26
Trang 64Sự kiện (Event) trong Javascript
• Ví dụ sự kiện onClick:
11/09/2015 xuantruong12121991@gmail.com 27
Trang 65Debug trong Javascript
11/09/2015 xuantruong12121991@gmail.com 28
Trang 66Debug trong Javascript
• Google Chrome: Ctrl+Shift+J để mở Debug
• Firefox: Cài Add-on
Trang 67DOM trong Javascript
• Khi một trang web được tải, trình duyệt sẽ tạo ra một
mô hình đối tượng về trang web (DOM – Document Object Model)
• DOM đại diện cho những gì chứa trong trang web
• Webpage = DOM + Javascript
11/09/2015 xuantruong12121991@gmail.com 30
Trang 68DOM trong Javascript
• Với DOM, chúng ta có thể thay đổi các phần tử, nội
dung, style(css), các thuộc tính và tạo ra các sự kiện bên trong tài liệu HTML
11/09/2015 xuantruong12121991@gmail.com 31
Trang 69DOM trong Javascript
11/09/2015 xuantruong12121991@gmail.com 32
Trang 70Phương thức trong DOM
• Phương thức getElementById()
• Phương thức này cho phép truy cập đến một phần
tử HTML thông qua thuộc tính id của nó
• Cú pháp:
var tên biến = tên đối tượng getElementById(“Id phần tử)
• Phương thức getElementsByTagName()
• Cho phép truy cập đến phần tử HTML thông qua
tên gọi của phần tử đó
11/09/2015 xuantruong12121991@gmail.com 33
Trang 71String Object
• Kiểu String:
• Được đặt trong cặp dấu “chuỗi” hoặc ‘chuỗi’
• Không được vừa đôi vừa đơn
• VD: “chuỗi’ hoặc ‘chuỗi” là sai về cú pháp
• Khai báo một biến chuỗi với cú pháp sau
• var tên biến=“chuỗi”;
• Toán tử nối chuỗi “+”;
• Tạo một đối tượng String với cú pháp sau:
var tên biến= new String([chuỗi]);
11/09/2015 xuantruong12121991@gmail.com 34
Trang 72String Object
• Ví dụ :
var Lop= new String(“K38 CNTT”);
document.write(Lop);
• Đi kèm với đối tượng chuỗi là các thuộc
tính(properties), các phương thức(methods)
• Thuộc tính(properties):
• length: độ dài của chuỗi
11/09/2015 xuantruong12121991@gmail.com 35
Trang 73String Object
• Phương thức(methods):
11/09/2015 xuantruong12121991@gmail.com 36
charAt() Trả ký tự ở 1 vị trí trong chuỗi
concat() Nối nhiều chuỗi lại thành 1
toLowerCase() Chuyển 1 chuỗi sang chữ hoa
trim() Loại bỏ khoẳng trắng ở đầu và
cuối chuỗi
valueOf() Trả về giá trị của đối tượng
Trang 74String Object
• Ví dụ :
var str=" Hello world!";
document.write(str.substring(3)+"<br />");// lo world! document.write(str.substring(3,7));//lo w
11/09/2015 xuantruong12121991@gmail.com 37
Trang 75console.log('Kiểu dữ liệu y: '+typeof(y));
11/09/2015 xuantruong12121991@gmail.com 38
Trang 768
MIN_VALUE Gán giá trị nhỏ nhất mà một
số trong Javascript có thể có:5E-324
…
Trang 77• Nếu gán là 2 thì đối tượng Number được chuyển thành chuỗi nhị phần,
8 là hệ bát phân, 16 là hệ thập lục phân Nếu radix không được gán giá trị nào, đối tượng Number đơn giản sẽ được chuyển đổi thành chuỗi tương ứng với số
Trang 78Date Object
• Đối tượng ngày tháng(Date Object):
• L à một kiểu dữ liệu dùng để làm việc với ngày,
tháng, năm và thời gian
• Cú pháp:
var varName = new Date(param);
• Trong đó param là một tham số không bắt buộc ta có
4 cách tạo đối tượng Date:
11/09/2015 xuantruong12121991@gmail.com 41
Trang 79Date Object
• var myDate = new Date(); //Không đối số
• var myDate = new Date(123); //Đối số là milliseconds
• var myDate = new Date("May 3, 2013"); //Đối số date
string
• var myDate = new Date(2013,11,12); //Không đối số
là năm,tháng,ngày(có thể thêm giờ,phút,giây,mili giây)
11/09/2015 xuantruong12121991@gmail.com 42
Trang 80getYear Trả về năm từ đối tượng Date ( năm (–
)1900) getTime Trả về số mili giây của thời gian hiện tại (
tính từ 1/1/1970)
Trang 81setSeconds Thiết lập giây cho đối tượng Date ( 0-59)
setTime Thiết lập giá trị thời gian (tính bằng mili
giây) cho đối tượng Date
setMonth Thiết lập tháng cho đối tượng Date (1-12)
setYear Thiết lập năm cho đối tượng Date, năm
phải lớn hơn 1900 (năm (–) 1900)
Trang 82Math Object
• Cho phép bạn thực hiện các thao tác tính toán
về toán học
• Không có hàm tạo
• Tất cả các thuộc tính và phương thức của đối
tượng toán học đều tĩnh
• Có thể gọi trực tiếp bằng việc sử dụng từ
khóa Math như một đối tượng mà không cần tạo ra chúng
11/09/2015 xuantruong12121991@gmail.com 45
Trang 83Math Object
E Trả về dãy số Euler (khoảng 2.718)
LN2 Trả về logarit của 2 (khoảng 0.693)
LN10 Trả về logarit của 10 (khoảng 2.302)
LOG2E Trả về logarit cơ bản 2 của E (khoảng
Trang 84Math Object
Abs (number) Trả về giá trị tuyệt đối của một số
Sin (number) Trả về giá trị sin của của một số (tính bằng
11/09/2015 xuantruong12121991@gmail.com 47
Trang 85Math Object
11/09/2015 xuantruong12121991@gmail.com 48