2015-12-25 10 views
5

質問には、ウェブサイトのリンクが有効かどうかを確認する最も効率的な方法は何ですか?ウェブページがアップしているかどうかを確認する最も効果的な方法は?

現在、次のコードを実行していますが、20個のURLのリストに適用すると、完了までに時間がかかります。

if let data = NSData(contentsOfURL: NSURL(string: thisURL)!) { 
    println(thisURL) 
} else { 
    println("doesn't exist") 
    break 
} 
+0

HTTP URLの場合は、HEAD要求メソッドを使用して、リンクが有効かどうかを素早く確認できます。率直に言って、私はNSURLの使い方に慣れていませんが、この[リンク](http://sutes.co.uk/2009/12/nsurlconnection-using-head-met.html)がNSURLを使ってHEAD要求をシミュレートするのに役立つかどうかを見てください。ネットワークコールには常に遅延が発生するため、実現可能であれば、複数のスレッド間でURLリクエストを配信することを検討することができます。 –

+1

この回答はあなたの問題を解決します:http://stackoverflow.com/a/29050673/1079908 – ferit

答えて

0

上記の解決方法は、有効なインターネット接続があるかどうかだけを示しています(Google.comが利用可能であることを前提としています)。 Webサイトのグループの可用性をチェックしたい場合は、個々のWebサイトを個別にチェックする必要があります。次に、タイムアウトの制約があります。

一つの解決策は、同時に各ウェブサイトにアクセスしようとする20個のバックグラウンドタスクを起動し、結果がでてくるよう全体的な答えを構築することである。

アプリケーションによっては、それを行うために有効です1つのバックグラウンドタスクで20個のブロック全体を処理することができます。プロセスの初期段階でそれを十分に開始できるのであれば、時間がかかることは問題ではないかもしれません。

関連する問題