Tính năng lọc bài viết theo thẻ và quay lại vị trí trước đó!

Tính năng lọc bài viết theo thẻ và quay lại vị trí trước đó!

Tin ngắn hàng ngày dành cho bạn
  • Hơn 1 tuần nay mình không đăng bài, không phải không có gì để viết mà đang tìm cách để phân phối nội dung có giá trị hơn trong thời đại AI đang bùng nổ mạnh mẽ như thế này.

    Như từ hồi đầu năm đã chia sẻ, số lượng người truy cập vào trang blog của mình đang dần ít đi. Khi xem thống kê, lượng người dùng trong 6 tháng đầu năm 2025 đã giảm 30% so với cùng kì năm ngoái, 15% so với 6 tháng cuối năm 2024. Như vậy một sự thật là người dùng đang rời bỏ dần đi. Nguyên nhân do đâu?

    Mình nghĩ lý do lớn nhất là thói quen của người dùng đã thay đổi. Họ tìm thấy blog chủ yếu qua các công cụ tìm kiếm, trong đó lớn nhất là Google. Gần 1/2 số lượng người dùng quay trở lại blog mà không cần thông qua bước tìm kiếm. Đó là một tín hiệu đáng mừng nhưng vẫn không đủ để tăng lượng người dùng mới. Chưa kể giờ đây, Google đã ra mắt tính năng AI Search Labs - tức là AI hiển thị luôn nội dung tổng hợp khi người dùng tìm kiếm, điều đó càng khiến cho khả năng người dùng truy cập vào trang web thấp hơn. Một điều thú vị là khi Search Labs được giới thiệu, thì các bài viết bằng tiếng Anh đã soán ngôi trong bảng xếp hạng truy cập nhiều nhất.

    Một bài viết của mình thường rất dài, có khi lên đến cả 2000 chữ. Mà để viết ra được một bài như thế tốn nhiều thời gian. Nhiều bài viết ra chẳng có ai đọc là điều bình thường. Mình biết và chấp nhận vì không phải ai cũng gặp phải vấn đề đang nói đến. Viết đối với mình như một cách để rèn luyện sự kiên nhẫn và cả tư duy. Viết ra mà giúp được cả ai đó là một điều tuyệt vời.

    Vậy nên mình đang nghĩ sẽ tập trung vào nội dung ngắn và trung bình để viết được nhiều hơn. Nội dung dài chỉ khi muốn viết chi tiết hoặc đi sâu về một chủ đề nào đó. Nên là đang tìm cách thiết kế lại trang blog. Mọi người cùng chờ nha 😄

    » Xem thêm
  • CloudFlare đã giới thiệu tính năng pay per crawl để tính phí cho mỗi lần AI "cào" dữ liệu trên trang web của bạn. Là sao ta 🤔?

    Mục đích của SEO là giúp các công cụ tìm kiếm nhìn thấy trang web. Khi người dùng tìm kiếm nội dung mà có liên quan thì nó hiển thị trang web của bạn ra kết quả tìm kiếm. Điều này gần như là đôi bên cùng có lợi khi Google giúp nhiều người biết đến trang web hơn, còn Google thì được nhiều người dùng hơn.

    Bây giờ cuộc chơi với các AI Agents thì lại khác. AI Agents phải chủ động đi tìm kiếm nguồn thông tin và tiện thể "cào" luôn dữ liệu của bạn về, rồi xào nấu hay làm gì đó mà chúng ta cũng chẳng thể biết được. Vậy đây gần như là cuộc chơi chỉ mang lại lợi ích cho 1 bên 🤔!?

    Nước đi của CloudFlare là bắt AI Agents phải trả tiền cho mỗi lần lấy dữ liệu từ trang web của bạn. Nếu không trả tiền thì tôi không cho ông đọc dữ liệu của tôi. Kiểu vậy. Hãy chờ thêm một thời gian nữa xem sao 🤓.

    » Xem thêm
  • Lúc khái niệm "Vibe Code" bùng nổ mình cũng tò và tìm hiểu xem nó là gì. Hoá ra là chỉ cách lập trình mới: Lập trình viên ra lệnh và để cho LLM tự viết mã. Sau đó là hàng loạt các bài viết nói về cách họ đã xây dựng ứng dụng mà không cần phải viết một dòng mã nào, hoặc 100% là do AI viết...

    Mình không có ý kiến gì vì mỗi người một sở thích. Nhưng nếu tiếp xúc với nhiều thông tin như vậy thì ít nhiều thế hệ lập trình viên mới sẽ "ám ảnh". Khi làm việc với ngôn ngữ lập trình, chúng ta đang tiếp xúc ở bề nổi rồi. Đằng sau đó còn nhiều lớp khác che giấu sự phức tạp. Ví dụ biết viết JavaScript nhưng có biết nó chạy như thế nào không 🤔? Trên thực tế bạn chẳng cần phải biết nó chạy như thế nào mà chỉ cần biết cú pháp là viết được chương trình chạy ngon ơ.

    LLMs giờ đây lại thêm một lớp ảo hoá cho việc viết mã. Tức là nơi chúng ta không cần trực tiếp viết mà là ra lệnh. Làm việc sẽ nhanh hơn nhưng khi gặp vấn đề thì nhiều khả năng phải vận dụng kiến thức của tầng thấp hơn để giải quyết.

    Mình dùng Cursor, nhưng tính năng thích nhất và dùng nhiều nhất là Autocomplete & Suggestions. Thi thoảng cũng dùng Agents để bảo nó viết tiếp đoạn mã đang dở, thường thì nó làm rất tốt. Hoặc khi gặp lỗi thì hỏi, có lúc giải quyết được, lúc thì không. Nhìn chung nó đang làm thay nhiệm vụ của Google & Stack Overflow, giúp tiết kiệm thời gian 😆

    LLMs như một cuốn bách khoa toàn thư rất khủng khiếp. Hỏi gì cũng biết, cũng trả lời được nhưng có một sự thật là nó chỉ là mô hình đoán chữ (đoán tokens). Thế nên nếu vấn đề phổ biến thì nó sẽ làm rất tốt, nhưng vấn đề ít phổ biến hơn thì nó lại rất tệ, hoặc thậm chí là đưa ra thông tin sai lệch, nhiễu... Tóm lại, cần phải biết cách khai thác thông tin, mà để biết thì buộc người dùng phải có một lượng kiến thức nhất định, tránh rơi vào cái bẫy thiên kiến uy quyền (tin tưởng tuyệt đối vào ai đó) hoặc thiên kiến xác nhận (xác nhận niềm tin sẵn có bằng cách chỉ tìm bằng chứng xác nhận niềm tin đó).

    Tại thấy bài viết này nên lại nổi hứng viết vài dòng 🤓 Why I'm Dialing Back My LLM Usage

    » Xem thêm

Vấn đề

Xin chào độc giả của 2coffee.dev, lại gần một tuần im hơi lặng tiếng, tuần này tôi mang đến cho bạn đọc hai tính năng mới!

Khi xem lại dữ liệu trong quá khứ, tôi nhận ra rằng có khá nhiều người "hiếu kỳ" bấm vào khu vực tags (thẻ) bên trên tiêu đề bài viết. Đồng cảm với hành vi đó, tôi nghĩ rằng bạn đang muốn xem liệu bấm vào đây thì có điều gì xảy ra hay không?

Thường thì người ta sẽ nghĩ nó lọc bài viết dựa trên thẻ đó, tôi cũng nghĩ như thế. Giả sử hành vi đó là hợp lệ, thì nó lại gây ra một "bối rối" khác cho người dùng, như là làm thế nào để quay trở lại, làm thế nào để biết bài viết đang được lọc theo thẻ, hay chỉ đơn giản là làm thế nào để tôi biết rằng bấm vào đó thì tính năng lọc bài viết được thực thi...?

Vì thế tôi quyết định làm thêm một tính năng lọc bài viết theo thẻ. Có một danh sách các thẻ, bạn đọc muốn lọc theo thẻ nào chỉ cần bấm vào thẻ đó, ngay lập tức một danh sách bài viết đã lọc hiện ra.

Song song với đó là tính năng "bấm vào để đến vị trí trước đó", mà tôi tin rằng nó rất hữu ích cho nhiều người "quên" không mở bài viết bằng tab mới của trình duyệt. Nói hơi nhiều rồi nhỉ, ngay sau đây tôi xin phép được trình bày chi tiết cho bạn đọc.

Bấm vào để đến vị trí trước đó

Infinite loading là một kỹ thuật tải thêm nội dung mới mà người dùng dùng không cần làm gì thêm ngoài việc cuộn trang, khi đến một thời điểm nào đó, ví dụ như sắp đến cuối trang, nội dung mới sẽ tự động được tải xuống để không làm gián đoạn trải nghiệm của họ. Kỹ thuật này thường được các mạng xã hội áp dụng một cách triệt để vì họ không muốn người dùng phải thao tác nhiều hơn để nhận dữ liệu mới.

Thông thường, bạn sẽ thấy một số trang web yêu cầu người dùng bấm vào các trang tiếp theo để điều hướng sang nội dung mới. Cách làm này có lợi thế là rõ ràng, họ biết đang ở trang nào và sau đó có thể nhanh chóng điều hướng đến trang có nội dung đã biết.

Trước đây 2coffee cũng thử áp dụng cách yêu cầu người dùng phải bấm vào nút để đến trang tiếp theo hoặc tải thêm bài viết, nhưng có vẻ điều đó không thực sự hiệu quả cho lắm, vì có khá ít người bấm vào nút và vô hình chung nó gây cản trở người dùng tiếp cận với nhiều nội dung khác (không phải ngẫu nhiên mà Infinite loading lại vướng vào nhiều lùm xùm về khả năng gây nghiện trên các mạng xã hội :D), buộc tôi phải quay trở lại với các tiếp cận "tải vô cực" trước đó.

Trải nghiệm của Infinite loading có lẽ không còn gì cần bàn cãi, chỉ duy nhất có một nhược điểm là nếu như vô tình tải lại trang thì coi như bạn đọc phải cuộn lại từ đầu, mà có khi còn không nhớ vị trí trước đó là ở đâu. Hmm... có phải tôi đang muốn "đuổi" họ đi hay không?

Thật ra vấn đề này tôi đã phát hiện ra từ rất lâu rồi, nhưng vì chưa thực sự nghiêm túc nghĩ giải pháp cho vấn đề này, nên mọi thứ thi thoảng lại trôi vào quên lãng. Một lần nữa xin lỗi các độc giả của tôi, cho ai đã từng rơi vào cái thao tác chết tiệt này.

Trong cái khó, ló cái khôn. Tôi thấy có nhiều bạn đọc không trực tiếp bấm vào liên kết bài viết, mà họ sẽ "mở bài viết trong tab mới". Vâng, tôi cũng là một người hay làm như vậy bởi vì thói quen đọc hàng ngày. Khi đọc bất cứ một trang web nào khác, tôi sẽ dạo qua một vòng, mở hết một lượt bài viết mà mình thấy hứng thú rồi sau đó mới bắt đầu đọc từng cái một. Xem ra nhiều người cũng có sở thích giống như mình đấy chứ!

Quay trở lại, tôi vẫn cần phải có giải pháp để xử lý triệt để tình trạng này, vì thế tôi đã thêm một thông báo nhắc nhở người dùng bấm vào, để đưa họ đến vị trí cuối cùng của danh sách bài viết. Vị trí được xác định bằng liên kết cuối cùng mà họ bấm vào khi ở trang chủ, trang bài viết nổi bật...

Ban đầu tôi định tự động cuộn trang cho người dùng khi họ đang từ trang chi tiết bài viết mà quay ra trang chủ. Nhưng đến lúc làm thì có nhiều vấn đề cần giải quyết, ví như là khi người dùng cuộn trang quá sâu, thời gian để tải phân trang lâu hơn, người dùng không thể kiên nhẫn để chờ đợi trong khi họ không hề hay biết là có tính năng tự động cuộn trang. Vì thế họ có thể vô tình cuộn trang và làm cho tính năng này bị vô hiệu hóa. Do vậy, thay vì cuộn một cách tự động, hãy để cho họ chủ động. Nếu phát hiện ra họ có vị trí cuối cùng -> một thông báo hiện lên -> bấm vào và phần còn lại đã có tôi lo.

Tính năng quay lại bài viết trước đó

Tưởng chừng là đơn giản nhưng càng làm thì càng ra vấn đề, trước đó tôi chỉ đinh ninh là chỉ có trang chủ mới có danh sách bài viết thì sau đó các trang như Nổi bật, Nocodes cũng có. Như vậy cần phải xử lý thêm nếu họ có "vị trí cuối cùng" ở trang nào thì thông báo mới hiện ra.

Cuối cùng, thay vì lưu trữ thông tin vị trí bền vững vào localStorage thì sessionStorage có vẻ tối ưu hơn. Bởi vì trong phiên truy cập hiện tại, người dùng quan tâm đến vị trí cuối cùng của họ hơn là so với lần tiếp theo truy cập mới hoàn toàn. Sau một khoảng thời gian, có khi họ không còn nhớ gì cả.

Lọc bài viết theo tag

Tính năng lọc bài viết

Ngay đầu danh sách bài viết, bạn sẽ thấy một hàng dài các thẻ mà tôi liệt kê ra ở đây, nếu thấy hứng thú với cái tên nào, bạn đọc có thể bấm vào để hệ thống lọc ra các bài viết có gắn thẻ đấy.

Thú thật cho đến thời điểm hiện tại, các thẻ này đang được tôi "fix cứng" ở phía giao diện, tôi coi đây như là một tính năng thử nghiệm cho nên thời gian hoàn thành mới là thứ cần được ưu tiên. Sau khi phát hành, tôi sẽ theo dõi thái độ của bạn đọc với các thẻ này để tối ưu hóa ngay sau đó.

Một điều nữa là tính năng này hiện tại chưa có trên giao diện điện thoại, đơn giản vì tôi...chưa nghĩ ra vị trí thích hợp cho nó. Nếu chỉ đơn giản là thu nhỏ lại thì trông có vẻ không hợp lý lắm, dù sao trải nghiệm trên điện thoại vẫn là cái gì đó khác biệt so với màn hình lớn hơn. Vì thế tôi sẽ hoàn thiện tính năng này trong tương lai.

Cuối cùng cảm ơn bạn đọc đã theo dõi bài viết này, bạn có nghĩ rằng bạn thích tính năng nào trong hai cái tôi vừa kể ra ở trên không? Bạn có phát hiện ra lỗi gì không? Vì kiểm tra tính năng mình làm ra là một cái gì đó rất "omg", là lập trình viên ai chẳng nghĩ mình "code" không bao giờ có "bug"!? Thái độ của bạn sẽ được tôi xem xét một cách cẩn thận, hoặc nếu bạn có góp ý gì thì đừng ngần ngại để lại bình luận xuống dưới bài viết nhé. Xin cảm ơn!

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (0)

Nội dung bình luận...