У меня есть приложение Какао, содержащее WebView. Я нацелился на 10.4 SDK из-за установленной клиентской базы приложения. (т.е. я не могу требовать леопарда.)
У меня есть два файла: index.html и data.js.
Во время выполнения, в ответ на пользовательский ввод, я часто пишу в файл data.js, заполняя его текущими данными из приложения.
(Файл data.js используется файлом index.html при загрузке тела для заполнения таблиц в пределах index.html. Сам индекс.html не изменяется.)
Чтобы (якобы) предотвратить кэширование моих часто меняющихся данных в WebKit, я звоню:
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:indexFileURL cachePolicy: NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
и
[[myWebView mainFrame] loadRequest: urlRequest];
Это очень хорошо работает у тигров и леопардов.
Однако в Leopard произойдет сбой, если установлена Safari Beta 4. Рисунок файла index.html в веб-представлении не учитывает текущие изменения в файле data.js. Похоже, что файл javascript (data.js) фактически кэшируется, независимо от политики кэширования URL.
В качестве обходного пути я попытался вызвать [[myWebView mainFrame] reload] после loadRequest, но это вызывает другие проблемы. (Веб-представление вообще не обновляется.)
Может кто-нибудь предложить способ исправить или обойти это поведение? Спасибо.