【问题标题】:Most effective way of checking if a webpage is up?检查网页是否启动的最有效方法?
【发布时间】:2016-03-31 07:18:14
【问题描述】:

如问题所述,检查网站链接是否有效的最有效方法是什么?

目前我正在执行以下代码,但是当应用于包含 20 个 URL 的列表时,它需要非常长的时间才能完成。

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

【问题讨论】:

  • 如果是HTTP URL,可以使用HEAD请求方法快速检查链接是否有效。坦率地说,我不熟悉 NSURL 的使用,但看看这个 link 是否有助于使用 NSURL 模拟 HEAD 请求。此外,由于网络调用总是会产生一些延迟,如果可行的话,你可以考虑在多个线程之间分配你的 URL 请求。
  • 这个答案解决了你的问题:stackoverflow.com/a/29050673/1079908

标签: swift


【解决方案1】:

上述解决方案仅告诉您您是否有有效的互联网连接 - 假设 Google.com 可用。如果您想检查一组网站的可用性,则需要单独检查每个网站 - 然后您就会遇到超时限制。

一种解决方案是启动 20 个后台任务以尝试同时访问每个网站,并根据结果建立整体答案。

根据您的应用程序,在单个后台任务中执行整个 20 块可能是有效的 - 如果您可以在流程中足够早地开始,那么花费很长时间可能并不重要 - 只是它似乎没有阻止用户。

【讨论】:

    猜你喜欢
    • 2011-01-04
    • 2011-12-10
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2015-12-30
    • 2020-03-23
    • 1970-01-01
    相关资源
    最近更新 更多