iPhone: Различия в Действиях Между Настройками NSURLRequestCachePolicy

При использовании NSURLRequest на iPhone, каковы различия в производительности реального мира между различными настройками NSURLRequestCachePolicy? Я конкретно интересуюсь эффектом политики кэша на восприятие пользователем скорости, на которой отображаются страницы UIWebView.

Я использовал значение по умолчанию NSURLRequestCachePolicy но я думаю, что, возможно, NSURLRequestReloadRevalidatingCacheData мог быть лучшим для большинства случаев особенно при возвращении к предыдущей странице.

Если Вы использовали различные политики кэша при реальных условиях, какая политика оказалась оптимальной при конкретном обстоятельстве? Что политика обеспечивает лучшей общей производительности по трем различным типам соединений iPhone, Wi-Fi, 3G и Края? Политика кэша даже имеет какой-либо значительный эффект на восприятие пользователем скорости загрузки страницы, или я должен смотреть в другом месте для оптимизации времени дисплея UIWebView?

Обновление:

Кажется, существует согласие, что UIWebView, кажется, игнорирует параметры кэширования на любом NSURLRequest, учитывая его. У меня нет полной уверенности, что это - окончательный ответ, но запрет времени, чтобы сделать некоторое обширное тестирование, я не могу противоречить ему. Поэтому я принимаю самый высокий расчетный ответ. Однако я советовал бы взять ответы с мелкой частицей соли, если вопрос важен для проекта. - TechZen.

11
задан TechZen 23 February 2010 в 17:27
поделиться

3 ответа

Я не думаю, что это как-то повлияет на время загрузки UIWebView. UIWebView построен на WebKit, и они не используют NSURLConnection внутри (они находятся на гораздо более низком уровне и используют CFNetwork напрямую).

Возможно, это не то, что вы хотите услышать, но, вероятно, лучший способ ускорить время загрузки UIWebView - не использовать UIWebView. Рендеринг веб-страниц требует значительных затрат процессора. На самом деле, MobileSafari в основном работает на процессоре, а не в сети - обратите внимание, сколько времени уходит на заполнение шашечного узора при прокрутке, например. Для действительно быстрого, быстро загружаемого содержимого лучше всего создать собственный интерфейс в Cocoa.

3
ответ дан 3 December 2019 в 11:36
поделиться

вы можете просто:

var text_val = $('#second_child').text();

, как указано в предыдущих ответах. но, поскольку «нужно захватить текстовое значение дочернего div», я предполагаю, что дочерний div id, вероятно, не всегда доступен. вместо этого можно попробовать:

var text_val = $('#first').children().eq(1).text();

, где 1 - индекс дочернего div (так как отсчет начинается с нуля)

-121--2182195-

При выполнении Java-программы выполняется такой же «пользователь», как при выполнении проверок командной строки?

EDIT : Попробуйте скопировать файл в каталог, из которого выполняется программа, и проверить, может ли он прочитать его. После копирования файла в каталог выполнения можно также попробовать следующее:

InputStream in = getClass().getResourceAsStream("/gameTheoryAgentConfiguration.properties");
configuration.load(in);

(при условии, что в пути к классам указан «».)

-121--3095639-

Несколько часов для проекта, пытающегося получить UIWebView для кэширования загружаемых страниц. Это оказалось невозможным со стороны приложения без локального хранения файлов. Похоже, что UIWebView полностью игнорирует NSURLRequestCachePolicy .

Yahoo! содержит некоторые сведения о режиме кэширования iPhone.

2
ответ дан 3 December 2019 в 11:36
поделиться

Я просто сделал grep в исходниках WebKit, и не нашел никакого использования -[NSURLRequest cachePolicy].

0
ответ дан 3 December 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: