objective-c - timeoutIntervalForRequest timeoutIntervalForResource 有什么区别
PHPz
PHPz 2017-05-02 09:38:08
0
1
1772

NSURLSessionConfiguration中有两个超时设置,一个叫timeoutIntervalForRequest 另一个是timeoutIntervalForResource,这两个有什么不同?一般在何种情况下设置?

PHPz
PHPz

学习是最好的投资!

membalas semua(1)
给我你的怀抱

Teks berikut: rujuk di sini
timeoutIntervalForRequest dan timeoutIntervalForResource tentukan selang masa tamat untuk permintaan dan sumber. Ramai pembangun cuba menggunakan timeoutInterval untuk mengehadkan jumlah masa untuk menghantar permintaan, tetapi ini salah faham maksud timeoutInterval: masa antara mesej. timeoutIntervalForResource sebenarnya menyediakan ciri tamat masa keseluruhan, yang sepatutnya hanya digunakan untuk pemindahan latar belakang, bukan apa-apa yang pengguna mungkin mahu tunggu.

Uji dan fahami diri anda

Dalam keadaan tertentu (timeoutInterval, timeoutIntervalForResource, timeoutIntervalForRequest) ketiga-tiga nilai ini boleh mencetuskan permintaan tamat.

Ia boleh difahami dalam dua situasi, iaitu sama ada timeoutInterval ditetapkan untuk NSURLReaqust.

1. Jika NSURLRequest timeoutInterval ditetapkan:
Abaikan tetapan timeoutIntervalForRequest dan gunakan nilai timeoutIntervalForResource dan timeoutInterval yang lebih kecil sebagai masa tamat.

2. NSURLRequest timeoutInterval tidak ditetapkan:
Nilai timeoutIntervalForRequest dan timeoutIntervalForResource yang lebih kecil ialah masa tamat masa, yang bukan 60-an lalai Request timeoutInterval.

NSURLRequest mahupun SessionConfiguration tidak ditetapkan untuk menggunakan nilai lalai tamat masa 60-an.

Muat naik dan muat turun dalam mod sesi latar belakang abaikan tetapan timeoutIntervalForRequest dan timeoutInterval
Gunakan timeoutIntervalForResource

NSURLRequest
timeoutInterval-(lalai 60s)

SessionConfiguration
timeoutIntervalForRequest- (lalai 60s)
timeoutIntervalForResource- (lalai 7 hari)

@property NSTimeInterval timeoutIntervalForRequest;
Deskripsi
Selang masa untuk digunakan semasa menunggu data tambahan.
Harta ini menentukan selang masa tamat permintaan untuk semua tugasan dalam sesi berdasarkan konfigurasi ini mengawal berapa lama (. dalam beberapa saat) tugas harus menunggu data tambahan tiba sebelum menyerah Pemasa yang dikaitkan dengan nilai ini ditetapkan semula apabila data baharu tiba Apabila pemasa permintaan mencapai selang waktu yang ditentukan tanpa menerima sebarang data baharu, ia mencetuskan tamat masa.Nilai lalai ialah 60.
Penting
Sebarang tugasan muat naik atau muat turun yang dibuat oleh sesi latar belakang akan dicuba semula secara automatik jika permintaan asal gagal kerana tamat masa Untuk mengkonfigurasi tempoh masa muat naik atau muat turun harus dibenarkan cuba semula atau dipindahkan, gunakan sifat timeoutIntervalForResource.
AvailabilityiOS (7.0 dan lebih baharu), macOS (10.9 dan lebih baharu), tvOS (9.0 dan lebih baharu), watchOS (2.0 dan lebih baharu)

@property NSTimeInterval timeoutIntervalForResource;
Penerangan
Jumlah masa maksimum yang permintaan sumber harus dibenarkan diambil.
Harta ini menentukan selang masa tamat sumber untuk semua tugas dalam sesi berdasarkan konfigurasi ini. Selang masa tamat sumber mengawal berapa lama (dalam saat) menunggu untuk keseluruhan sumber dipindahkan sebelum berputus asa. Pemasa sumber bermula apabila permintaan dimulakan dan dikira sehingga sama ada permintaan selesai atau selang masa tamat ini dicapai, yang mana lebih dahulu.
Nilai lalai ialah 7 hari.
AvailabilityiOS (7.0 dan lebih baru), macOS (10.9 dan kemudian), tvOS (9.0 dan lebih baharu), watchOS (2.0 dan lebih baharu)

@property NSTimeInterval timeoutInterval;
Penerangan
Selang masa tamat penerima, dalam saat.
Jika semasa percubaan sambungan permintaan kekal melahu lebih lama daripada selang tamat masa, permintaan itu dianggap telah tamat masa . Selang masa tamat lalai ialah 60 saat.
Sebagai peraturan umum, anda tidak seharusnya menggunakan selang masa tamat yang singkat. Sebaliknya, anda harus menyediakan cara mudah untuk pengguna membatalkan operasi yang telah lama berjalan. Untuk mendapatkan maklumat lanjut, baca Reka Bentuk untuk Rangkaian Dunia Nyata dalam Gambaran Keseluruhan Rangkaian.
KetersediaaniOS (8.0 dan lebih baharu), macOS (10.10 dan lebih baharu), tvOS (9.0 dan lebih baharu), watchOS (2.0 dan lebih baharu)

正常情况下设置timeoutIntervalForRequest(根据文档我觉得可以理解为请求的默认超时据文档我觉得可以理解为请求的默认超时时档时UR钶可以理解为请求的默认超时时可时UR钶可以理解为请求的默认超时时室超时时可以理解为请求。对单个请求设置超时时间)

特殊情况下(sesi latar belakang模式下上传、下载)设置timeoutIntervalForResource

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan