Tối ưu performace khi sử dụng ảnh với srcset | Thuộc tính srcset của thẻ IMG

  Рет қаралды 24,850

F8 Official

F8 Official

Күн бұрын

Пікірлер: 75
@F8VNOfficial
@F8VNOfficial Жыл бұрын
## Có thể bạn đã biết! NextJS có built-in component là Image, khi bạn sử dụng component này srcset sẽ được sử dụng tự động để đáp ứng tốt trên nhiều màn hình với ảnh 1x, 2x, v.v. ## Một hiểu nhầm lớn! Nhiều bài đăng trên mạng nói màn hình có pixel ratio là 2 nghĩa là 1px trong CSS sẽ dùng 2px vật lý là chưa chính xác, đúng là 4px. Hoặc 1px CSS trên màn hình có pixel ratio 3 sẽ dùng 3px vật lý là chưa chính xác, đúng phải là 9px các bạn nhé. Tư duy khá đơn giản là pixel là 1 điểm, khi scale nó thì phải tính theo cả 2 chiều x và y. (Thực chất pixel ratio có thể bị thay đổi khi tùy chỉnh độ phân giải trên màn hình. Ví dụ màn có 1920x1080 pixel vật lý và chỉnh độ phân giải cũng là 1920x1080 sẽ có pixel ratio là 1, nhưng chỉnh thành 960x540 lại có pixel ratio là 2). ## Áp dụng thực tế Thực chất, rất nhiều trang web sử dụng nhiều hình ảnh (trong video mình nói là ít, sorry mọi người 😘). Ví dụ như các trang thương mại điện tử, mỗi sản phẩm show ra đều có thumbnail đúng không nào? Vì vậy, cơ hội để các bạn sử dụng srcset rất nhiều nhé. Tuy nhiên, để sử dụng hiệu quả các bạn cần kết hợp với backend để tự động generate ra các size các của ảnh thay vì làm thủ công nhé. Vì vậy, nó sẽ phức tạp hơn, và khó áp dụng hơn nếu bạn chỉ là lập trình viên Frontend. ## Vấn đề tốn băng thông? Khi bạn sử dụng tài nguyên lớn hơn mức cần thiết thì máy chủ web và người dùng của bạn đều phải chịu tốn băng thông hơn. Phía máy chủ, tốn băng thông cho việc truyền dữ liệu về máy khách hàng. Phía khách hàng, tốn băng thông cho việc tải dữ liệu về. Đương nhiên, cả bạn và khách hàng của bạn đều phải chịu chi phí. Đối với trang web nhỏ thì bạn chỉ phải trả rất ít chi phí cho băng thông máy chủ, nhưng với trang truyền tải nhiều tài nguyên (như khóa học Pro của F8 phải truyền tải hình ảnh/video thông qua CDN) thì chi phí sẽ rất lớn. Khi đó, việc tối ưu hình ảnh góp một phần đáng kể vào chi phí về mặt cơ sở hạ tầng. ✅Để tìm hiểu về nhiều kiến thức hơn, các bạn hãy mua khóa học HTML, CSS Pro trước khi trở về giá gốc trong thời gian tới nhé: fullstack.edu.vn/landing/htmlcss/
@TTKH213
@TTKH213 Жыл бұрын
chất giọng này luôn xứng đáng 10 điểm 😁
@maiphuchoang7170
@maiphuchoang7170 Жыл бұрын
Cầu mong 1 video về Authentication a Sơn ơi :((
@AnhPham-kq3fh
@AnhPham-kq3fh 6 ай бұрын
Dạ cho em hỏi làm như thế nào để hiển thị được giao diện phần thay đổi kích thước ở phút 21:23 v ạ?
@nguyenxuanbach2672
@nguyenxuanbach2672 Жыл бұрын
Chào a Sơn Đặng, a và ekip có thể làm series về Redux Toolkit và Redux Saga được không ạ?
@vuongqtvn
@vuongqtvn Жыл бұрын
Tuyệt vời quá anh😊 trước chỉ mỗi lazy load
@sondangf8
@sondangf8 Жыл бұрын
Cách này phải dùng NextJS/Backend thì mới tiện được. Ông nào mới học HTML, CSS thì phải resize ảnh thủ công mệt lắm 😥😥
@tranconghung11231
@tranconghung11231 Жыл бұрын
khi nào có tiếp khóa offline ạ
@khavovan8201
@khavovan8201 Жыл бұрын
Anh cho em hỏi là làm sao để nắm vững kiến thức như anh được không ạ ? Hi vọng hôm nào a chia sẻ phương pháp học chắc kiến thức đi ạ ...
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Dành nhiều thời gian mày mò, tìm tòi và hệ thống kiến thức đã học bằng cách viết ra nha em ơi 😍
@QuanNguyen-nx9td
@QuanNguyen-nx9td Жыл бұрын
Cám ơn em, hay quá
@ThanhNguyen-zk4sy
@ThanhNguyen-zk4sy 10 ай бұрын
Anh có thể làm video cụ thể về việc backend để tự động generate ra các size các của ảnh được k ạ
@F8VNOfficial
@F8VNOfficial 10 ай бұрын
Giờ anh chưa thu xếp được để làm ngay. Nhưng em học backend thì ngôn ngữ nào cũng làm được hết, biết thao tác với file và ảnh là được, cái này chỉ là resize ảnh và save lại thôi nha em.
@ThanhNguyen-zk4sy
@ThanhNguyen-zk4sy 10 ай бұрын
@@F8VNOfficial ngoài tối ưu ảnh thì mình cần tối ưu những gì ạ
@yennhipham6624
@yennhipham6624 Жыл бұрын
anh ơi. anh live work with me đi ạ. dạo này em bị mất động lực ời, anh live cho em xin miếng động lực với ạ :
@trantruong1657
@trantruong1657 Жыл бұрын
video này đưa vào trang của khóa html css pro luôn đi anh :>
@nguyenvannam5095
@nguyenvannam5095 Жыл бұрын
Anh Sơn đưa rồi mà, mình đã bookmark =))
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Anh đưa vào khóa Pro trong chương Responsive nha em, vì cái này nó giúp làm responsive hình ảnh á.
@F8VNOfficial
@F8VNOfficial Жыл бұрын
@@nguyenvannam5095 Nam tia chớp ⚡
@nguyenvannam5095
@nguyenvannam5095 Жыл бұрын
@@F8VNOfficial Anh đừng nói thế , e thích lắm 🥲
@modivation6551
@modivation6551 Жыл бұрын
pixel trong css và pixel trên thực tế nó khác nhau như thế nào nhỉ anh em. Tôi cứ không hiểu đoan này . Tưởng DPI càng cao thì nó càng hiển thị rõ nét
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Ví dụ bạn có độ phân giải vật lý 2560x1440px, bạn cấu hình trên phần mềm ở độ phân giải này nhưng lại scale 200% (trong cài đặt display) thì lúc này bạn chỉ đạt 1280x720px CSS. Nếu bạn scale 100% thì bạn có được 2560x1440px khi CSS.
@YunaCrystal3009
@YunaCrystal3009 Жыл бұрын
Cái extension show ra cái bảng emoji của a tên gì vậy ạ
@laptrinhcungngan
@laptrinhcungngan Жыл бұрын
Bài này hay quá
@NamLe-ok7hy
@NamLe-ok7hy Жыл бұрын
Anh ơi cho em hỏi cách tạo button switch 2 thư viện với nhau đc ko a?
@anphu5626
@anphu5626 Жыл бұрын
Anh ơi, cho em hỏi anh có ra thêm phần react k
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Phần này chắc anh em cứ lấy API đó làm tiếp em ơi, giờ anh đang overload quá chưa làm tiếp ngay được ý :(
@devdaytoan
@devdaytoan Жыл бұрын
này có trong khóa học pro ko a
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Có em ơi, trong chương responsive em nhé
@nl.tandat
@nl.tandat Жыл бұрын
Chào anh Sơn, em làm một học viên của khoá học HTML&CSS cơ bản, em theo học và thực hành các bài trong khoá học nhưng hiện đến bài 70 (Thực hành CSS position relative) của khoá học thì gặp lỗi dù phần code đã làm theo yêu cầu nhưng vẫn báo sai, không chỉ em mà em thấy một số bạn cũng gặp vấn đề này! Mong anh giải đáp sự cố trên!
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Hi em. Có lỗi thì em báo anh anh tiếp nhận và check lại thôi em nhé. Vì bài test trên web nó có thể ảnh hưởng bởi nhiều yếu tố như trình duyệt khác nhau, cài đặt các tiện ích gây ảnh hưởng vd như dark theme, mấy ext mà nó sửa html css của trang cũng có thể làm sai lệch bài test. Em thử bằng Chrome và tắt các tiện ích/hoặc tạo profile riêng cho việc học và không cài ext trên account đó nhé.
@anhucle2022
@anhucle2022 Жыл бұрын
Cho e hỏi, nếu 1 trang landing page có tầm 9 section mà section nào cũng có 1 img png khá to (org size > 500 x500) thì có nên tối ưu hình ảnh k ạ
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Có em, ngoài áp dụng các cách trên em thêm lazy load cho các hình nằm xa phía dưới màn hình đầu tiên nữa nhé. Ảnh xuất hiện ở màn đầu tiên khi truy cập thì ko cần lazy load. Nếu phục vụ cho traffic lớn thì đẩy cả landing lên CDN cache nữa.
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Mà 500x500 cũng đâu to lắm em, em CSS nó kích thước bao nhiêu? Đã đáp ứng được màn 2x chưa em ơi?
@ab_life_review
@ab_life_review Жыл бұрын
a có thể cho e xin từ khóa về việc a seo web fullstack edu thế nào ko ạ. e thấy a dùng helmet để dynamic meta tag tuy nhiên thì khi view source ko thấy thay đổi gì thì chắc a vẫn dùng csr . Có thể cho e xin từ khóa để tham khảo đọc hiểu về vấn đề này k ạ
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Anh dùng prerender server em ơi, cái này cần biết setup máy chủ chút em nhé. Đại khái là nếu gặp bots thì anh sẽ trả về cho nó bộ source HTML đầy đủ thay vì chỉ có #root rỗng nhé em.
@ab_life_review
@ab_life_review Жыл бұрын
@@F8VNOfficial quào, này thì chắc hơi quá sức vs e r, chắc tìm cách migrate sang next js mất. e cũng tìm hiểu về setup các thứ r mà mấy ngày nay cx chưa nghĩ ra đc gì
@ab_life_review
@ab_life_review Жыл бұрын
@@F8VNOfficial e tìm theo cách của a thì chắc là config vào file conf của docker mà thấy cx toàn bài viết về angular
@F8VNOfficial
@F8VNOfficial Жыл бұрын
​@@ab_life_review Nếu em dùng docker thì mới cần config trong docker, em cài nginx ở đâu thì cấu hình ở đó nhé. Còn prerender server em dựng lên trước (docker hoặc cài thẳng lên máy chủ), rồi từ nginx em pass sang prerender server nếu là bots nhé. Em xem trên Github nó có đủ tài liệu đấy: github.com/prerender/prerender
@ab_life_review
@ab_life_review Жыл бұрын
@@F8VNOfficial ok a ạ, e cảm ơn a nhiều ạ.
@thienpham.h5954
@thienpham.h5954 Жыл бұрын
giọng anh rất lôi quấn
@lanhanhnguyen4577
@lanhanhnguyen4577 9 ай бұрын
anh Sơn đỉnk
@F8VNOfficial
@F8VNOfficial 9 ай бұрын
Lâu lắm mới thấy em comment 🤣
@chauphan33940
@chauphan33940 Жыл бұрын
anh ơi, khi nào có khóa JS pro ạ
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Tầm tháng 10 có thể anh preorder nha em, giờ anh hoàn thiện nốt 2-3 chương cuối khóa HTML đã, làm chi tiết quá mất cả năm rồi em ạ.
@chauphan33940
@chauphan33940 Жыл бұрын
@@F8VNOfficial vậy lúc khóa JS Pro ra mắt thì đã hoàn thiện chưa hay cũng giống như khóa HMTL lúc mới ra ạ
@sondangf8
@sondangf8 Жыл бұрын
@@chauphan33940 Anh sẽ làm khác, khi ra phải gần xong rồi, tầm 70% mới ra mắt, không để anh em phải mua xong chờ nữa nhé!
@chauphan33940
@chauphan33940 Жыл бұрын
@@sondangf8 vậy tốt quá anh ạ
@VinhNguyen-ko8cp
@VinhNguyen-ko8cp Жыл бұрын
@@sondangf8 còn khóa React JS free khi nào mình hoàn thiện xong phần xây dựng dự án Tik Tok v anh
@seaeaa
@seaeaa Жыл бұрын
mong khóa js pro có thể học lỏm thêm tư duy của senior 😗
@F8VNOfficial
@F8VNOfficial Жыл бұрын
Haha anh intern lâu năm thôi 🤣
@khoacode
@khoacode Жыл бұрын
Cmt đầu video hay quá a
@sondangf8
@sondangf8 Жыл бұрын
Cảm ơn em nhé
@TsukkiAyaka
@TsukkiAyaka 2 ай бұрын
Dạ cho em hỏi làm như thế nào để hiển thị được giao diện phần thay đổi kích thước ở phút 21:23 v ạ?
@TsukkiAyaka
@TsukkiAyaka 2 ай бұрын
em được rồi
@inhhellcat8420
@inhhellcat8420 Ай бұрын
Bật lên kiểu gì thế ạ, chỉ mình với 🙆‍♂
@TsukkiAyaka
@TsukkiAyaka Ай бұрын
​@@inhhellcat8420 bạn xem phần bên phải của giao diện bạn thấy khác bạn cái gì thì bạn nhìn theo rồi đổi là đc
Học Redux và viết lại nó với 1 dòng code =))
35:54
F8 Official
Рет қаралды 50 М.
бабл ти гель для душа // Eva mash
01:00
EVA mash
Рет қаралды 9 МЛН
СОБАКА ВЕРНУЛА ТАБАЛАПКИ😱#shorts
00:25
INNA SERG
Рет қаралды 3,9 МЛН
How is this Website so fast!?
13:39
Wes Bos
Рет қаралды 999 М.
Hiểu cơ bản về ngôn ngữ CSS trong 30 phút | Vũ Nguyễn Coder
36:26
The Easy Way to Design Top Tier Websites
11:54
Sajid
Рет қаралды 571 М.
бабл ти гель для душа // Eva mash
01:00
EVA mash
Рет қаралды 9 МЛН