Tải xuống

Điều một trình quản lý tải xuống làm mà trình duyệt web thì không

Một tệp bốn gigabyte, hoàn thành chín mươi phần trăm, rồi một cuộc gọi điện thoại — hoặc chỉ là khóa màn hình — và nó biến mất. Đây là lời phàn nàn phổ biến nhất về việc tải xuống trên iOS, và nó không phải là một lỗi. Đó là hệ điều hành đang làm chính xác những gì nó được thiết kế để làm, và là lý do một nhóm ứng dụng riêng biệt tồn tại.

10 phút đọc Cập nhật 29 tháng 7, 2026

  • 30 giây Khoảng thời gian một ứng dụng bị tạm dừng còn tiếp tục chạy trước khi iOS dừng nó
  • 206 Mã trạng thái HTTP khiến việc tiếp tục phát trở nên khả thi
  • 1 byte Lượng dữ liệu bị tải lại của một lượt chuyển được tiếp tục đúng cách

Vì sao lượt chuyển tệp dừng lại khi bạn chuyển ứng dụng

iOS không để một ứng dụng tiếp tục hoạt động chỉ vì nó muốn vậy. Khi bạn rời một ứng dụng, nó bị tạm dừng chỉ trong vài giây, và một ứng dụng bị tạm dừng không có thời gian CPU, không có socket mạng và không có cách nào để nhận ra rằng nó đã bị dừng. Mọi thứ nó đang giữ trong bộ nhớ vẫn còn đó, nhưng đông cứng — và nếu hệ thống cần bộ nhớ đó, ứng dụng sẽ bị chấm dứt hoàn toàn mà không được báo trước.

Một lượt tải xuống chạy trên một kết nối thông thường bên trong ứng dụng vì vậy kết thúc ngay tại cử chỉ về màn hình chính. Một số ứng dụng che giấu điều này bằng cách xin thêm vài giây thời gian chạy nền, đó là lý do một lượt tải xuống đôi khi sống sót qua việc đưa xuống nền đúng bằng khoảng thời gian bạn nhận ra nó đã không sống sót.

Câu trả lời đúng đắn khác biệt về bản chất. iOS cung cấp một dịch vụ chuyển tệp nền: bạn trao cho hệ thống một danh sách URL và đích đến, và hệ thống tự thực hiện việc tải xuống, trong tiến trình riêng của nó, theo lịch trình riêng của nó. Ứng dụng của bạn có thể bị tạm dừng, chấm dứt, hoặc hoàn toàn không chạy — lượt chuyển vẫn tiếp tục, và ứng dụng được khởi chạy lại trong nền khi có gì đó cần báo cáo. Đây là cơ chế đứng sau mọi lượt tải xuống sống sót qua một màn hình khóa, và việc sử dụng nó là một quyết định thiết kế mà một ứng dụng đưa ra ngay từ đầu, không phải một cài đặt bạn có thể bật lên.

Bốn cơ chế quyết định liệu một lượt tải xuống có sống sót hay không

Range request
Một yêu cầu HTTP xin các byte từ vị trí 5.000.000 trở đi thay vì toàn bộ tệp. Nếu máy chủ trả lời 206 Partial Content, việc tiếp tục từ giữa chừng là khả thi; nếu nó trả lời 200 OK và bắt đầu từ đầu, thì không — tệp phải được tải lại từ số không.
Kết nối song song
Chia một tệp thành nhiều khoảng và tải chúng cùng lúc. Nó hữu ích vì một kết nối đơn thường bị giới hạn tốc độ bởi máy chủ hoặc bị hạn chế bởi độ trễ khứ hồi, không phải vì internet của bạn nhanh hơn khi mở nhiều socket hơn.
Vị trí đã cam kết
Bao nhiêu phần của tệp đã được ghi an toàn ra đĩa, khác với phần vẫn đang trên đường truyền. Một lượt tải xuống tiếp tục từ byte đã cam kết cuối cùng là đúng đắn; một lượt tải xuống tiếp tục từ những gì nó *nghĩ* nó đã nhận được tạo ra một tệp hỏng chỉ lộ ra hàng giờ sau đó.
Phiên nền
Lượt chuyển do hệ thống vận hành được mô tả ở trên. Nó khởi động chậm hơn, không thể được trao logic tùy chỉnh tùy ý, và nó là thứ duy nhất tiếp tục chạy khi ứng dụng không chạy.

Vì sao một lượt tải xuống thất bại, và mỗi kiểu thất bại trông như thế nào

Hầu hết các báo cáo "tải xuống kẹt" là một trong năm trường hợp sau, và chúng dễ phân biệt khi bạn biết hình dạng của chúng.

Điều bạn thấyĐiều thực sự đang xảy raĐiều giúp ích
Dừng ngay khoảnh khắc bạn rời ứng dụngLượt chuyển đang chạy trong tiến trình, không phải trong một phiên nền.Không có gì bạn có thể làm từ bên ngoài — đây là vấn đề thiết kế ứng dụng.
Khởi động lại từ 0% mỗi lầnMáy chủ bỏ qua các yêu cầu range, nên không có cách nào tiếp tục từ giữa chừng.Một kết nối ổn định, hoặc một tệp nhỏ hơn. Một số máy chủ chỉ cho phép range với các liên kết đã ký.
Thất bại sau vài phút, lặp đi lặp lạiLiên kết đã hết hạn. Nhiều máy chủ cấp URL chỉ có hiệu lực trong năm hoặc mười phút.Lấy lại liên kết từ trang gốc của nó và bắt đầu lại; liên kết cũ sẽ không bao giờ hoạt động.
Tải xuống nhanh, nhưng tệp không mở đượcNhững gì đến là một trang lỗi HTML hoặc một trang đăng nhập mang tên tệp video.Kiểm tra kích thước — một "bộ phim" 14 KB là một trang web. Kiểm tra liên kết trước khi chốt.
Rất chậm dù kết nối nhanhGiới hạn tốc độ theo từng kết nối ở phía máy chủ.Thêm kết nối song song, nếu máy chủ cho phép. Nếu nó giới hạn theo địa chỉ IP thay vì theo socket, không gì giúp được.

Khi hoàn toàn không có tệp nào để tải xuống

Một phần lớn video trên web không được phân phối dưới dạng một tệp. Nó được phân phối dưới dạng HLS — một danh sách phát .m3u8 liệt kê hàng trăm đoạn nhỏ, mỗi đoạn vài giây, thường ở nhiều mức chất lượng để trình phát có thể chuyển đổi khi kết nối của bạn thay đổi. Không có một URL duy nhất nào giữ bộ phim, vì bộ phim chỉ tồn tại như một chuỗi.

Lưu một luồng như vậy nghĩa là tải về từng đoạn rồi remux chúng: ghi các luồng video và âm thanh vào một container MP4 thông thường. Không gì bị mã hóa lại, nên không gì bị mất và nó chỉ mất vài giây thay vì bằng thời lượng của bộ phim. Kết quả là một tệp thông thường phát được ở bất cứ đâu.

Đây cũng là lý do vì sao "tải luồng này xuống" mất nhiều thời gian hơn đáng kể để bắt đầu so với tải một tệp: danh sách phát phải được tải về và phân tích, một mức chất lượng được chọn, và chỉ sau đó các đoạn mới có thể bắt đầu đến. Và đó là lý do vì sao một số luồng hoàn toàn không thể lưu được — nếu các đoạn được mã hóa dưới một cơ chế DRM, các khóa cố ý không thể lấy được, và không công cụ nào tôn trọng pháp luật có thể vượt qua điều đó.

Điều phân biệt một trình quản lý tải xuống thực sự với một nút tải xuống

Nó sống sót qua việc đóng ứng dụng

Lượt chuyển nền được trao cho hệ thống, với một bàn giao tiếp tục từ đúng byte đã cam kết thay vì bắt đầu tệp lại từ đầu.

Nó cho bạn biết một liên kết là gì trước khi bạn chốt

Kích thước, loại và liệu máy chủ có hỗ trợ tiếp tục hay không — tất cả đều biết được từ một yêu cầu HEAD duy nhất, và tất cả đều hữu ích trước khi bạn tiêu tốn bốn gigabyte dữ liệu di động.

Nó xếp hàng thay vì tràn ngập

Mười tệp cùng lúc chậm hơn ba tệp một lúc, vì mỗi kết nối nhận được phần chia sẻ nhỏ hơn và các thất bại nhân lên. Một hàng đợi với giới hạn đồng thời hợp lý sẽ hoàn thành sớm hơn.

Những gì tới nơi là một tệp thông thường

Trong một thư mục bạn có thể thấy, được đặt tên hợp lý, phát được bởi bất cứ thứ gì — không phải một blob cơ sở dữ liệu mà chỉ ứng dụng đó mới mở được.

Những thói quen ngăn ngừa hầu hết các vấn đề tải xuống

  • Bắt đầu tệp lớn trên Wi-Fi và để màn hình bật trong vài giây đầu

    Việc bàn giao sang phiên nền diễn ra sớm; sau đó màn hình không còn quan trọng nữa.

  • Đừng xếp hàng hai mươi mục cùng lúc

    Ba đến năm lượt chuyển đồng thời là điểm ngọt trên gần như mọi kết nối.

  • Kiểm tra dung lượng trống trước, không phải sau

    Một lượt chuyển làm đầy ổ đĩa thất bại ở 98%, và iOS có thể đã xóa bộ nhớ đệm của bạn trong lúc cố tìm chỗ trống.

  • Nghi ngờ một thông báo "đã hoàn thành" tức thì

    Một bộ phim hoàn thành trong hai giây là một trang lỗi. Hãy nhìn vào kích thước tệp.

  • Lấy lại các liên kết đã hết hạn từ trang gốc của chúng

    Thử lại một URL đã ký chết sẽ thất bại mãi mãi, bất kể ứng dụng thử lại bao nhiêu lần.

Sự khác biệt giữa các thiết bị

iPhone

Môi trường khắt khe nhất: việc tạm dừng diễn ra quyết liệt và dung lượng lưu trữ chật hẹp. Các phiên nền ở đây không phải là một sự tối ưu hóa, chúng là thứ duy nhất hoạt động.

iPad

Cùng những quy tắc đó, với nhiều không gian hơn để chạy — và là thiết bị iOS duy nhất mà một thư viện lớn có thể hợp lý rơi vào một ổ đĩa ngoài thay vì bộ nhớ trong.

Mac

Hoàn toàn không có tạm dừng, nên các lượt chuyển dài hoạt động theo cách chúng vẫn hoạt động trên bất kỳ máy tính để bàn nào. Giới hạn thực tế là máy chủ, không phải hệ điều hành.

Câu hỏi điều này thường gợi ra

Nhiều kết nối hơn có luôn nghĩa là tải xuống nhanh hơn không?

Không. Chúng giúp ích khi một máy chủ giới hạn tốc độ của mỗi kết nối riêng lẻ, điều này phổ biến. Chúng không làm gì khi giới hạn nằm ở kết nối của chính bạn, và chúng có thể khiến mọi thứ tệ hơn khi một máy chủ đếm số socket theo địa chỉ IP và bắt đầu từ chối chúng. Khoảng giữa bốn và tám là phạm vi hữu ích; ba mươi lại phản tác dụng.

Một lượt tải xuống có thể tiếp tục khi màn hình bị khóa không?

Có, nếu nó đã được trao cho dịch vụ chuyển tệp nền của hệ thống. Màn hình khóa không liên quan tới dịch vụ đó — điều quan trọng là ứng dụng bị tạm dừng, và toàn bộ điểm mấu chốt của cơ chế này là nó tiếp tục chạy bất kể điều đó.

Vì sao lượt tải xuống của tôi khởi động lại thay vì tiếp tục?

Máy chủ không tôn trọng yêu cầu range. Bạn có thể nhận biết vì tiến độ quay về số không thay vì tiếp tục. Một số máy chủ chỉ hỗ trợ range trên các URL tải xuống đã ký của họ, một số vô hiệu hóa hoàn toàn, và một số tôn trọng nó với tệp nhỏ nhưng không với tệp lớn.

Chuyển đổi một luồng thành MP4 có giống với mã hóa lại nó không?

Không. Remux di chuyển video và âm thanh có sẵn vào một container MP4 nguyên vẹn — không mất chất lượng, và đủ nhanh để hoàn thành trong vài giây. Mã hóa lại dựng lại hình ảnh với một codec khác và luôn mất chất lượng. Nếu lưu một luồng dài hai giờ mất hai giờ, có gì đó đang mã hóa lại khi không cần thiết.

FoxDL

FoxDL tải xuống như thế nào

Bộ máy có hai làn: một làn trong tiến trình nhanh khi ứng dụng đang hiển thị trên màn hình, và phiên nền hệ thống tiếp quản từ đúng byte đó khi không.

  • Các phần song song cho một tệp duy nhất, được ghi thẳng vào vị trí cuối cùng của chúng trên đĩa thay vì vào các phần tạm phải được ghép lại sau đó.
  • Lượt chuyển nền tiếp tục sau khi ứng dụng rời khỏi màn hình, và tiếp tục ở vị trí đã cam kết cuối cùng — không phải ở byte cuối mà ứng dụng nghĩ nó đã nhận được.
  • Tiếp tục sau khi rớt kết nối, khởi động lại hay bị buộc thoát, miễn là máy chủ tôn trọng các yêu cầu range. Khi không, FoxDL sẽ nói rõ điều đó thay vì lặp vô ích.
  • Luồng HLS được remux thành MP4, nên những gì tới thư viện là một tệp thông thường, không phải một thư mục chứa các đoạn.
  • Một công cụ kiểm tra tải xuống báo cáo kích thước, loại và khả năng tiếp tục thực sự của một liên kết trước khi bạn bắt đầu.
  • Mọi thứ tới một thư mục bình thường mà ứng dụng Tệp có thể thấy.

Hạn mức miễn phí khác nhau theo nền tảng: trên iPhone và iPad là một số lượt hạn chế được cộng thêm bằng một video có thưởng ngắn do chính bạn bắt đầu; trên Mac, nơi hoàn toàn không có quảng cáo, là một số lượng cố định theo ngày. Pro gỡ bỏ giới hạn trên mọi thiết bị.

Câu hỏi thường gặp

Tất cả câu hỏi

Đọc tiếp

Thư viện của bạn, cuối cùng cũng ở một nơi.

Tải miễn phí. Không tài khoản, không đăng ký — đủ tính năng trong bản miễn phí.

Tải trên App Store