Можно хотеть изучить svnadmin инструмент.
, Чтобы быть честным я не попробовал это прежде, и Вы, вероятно, получите ответ от кого-то, кто имеет, но можно работать от чего-то вроде этого:
необходимо быть в состоянии к init новый репозиторий, создать 'магистральный' каталог в нем, затем вывести предыдущий репозиторий в 'соединительную линию'.
К сожалению, объект XMLHttpRequest
был спроектирован таким образом, потому что он основан на WinInet. Кроме того, не рекомендуется использовать со стороны сервера. Вы должны использовать ServerXMLHttpRequest
, который имеет те же функции, но зависит от WinHTTP
. См. FAQ для получения дополнительной информации. Описание из документации ServerXMLHttp
гласит:
Стек HTTP-клиента предлагает более длительное время безотказной работы. Функции WinInet, которые не являются критичными для серверных приложений, такие как кэширование URL-адресов, автоматическое обнаружение прокси-серверов, разбиение на части HTTP / 1.1, автономная поддержка и поддержка протоколов Gopher и FTP, не включены в новое подмножество HTTP.
Это означает, что вместо использования XmlHttpRequest :
IXMLHTTPRequest http = CreateComObject("Msxml2.XMLHTTP.6.0"); http.open("GET", "http://www.bankofcanada.ca/stat/fx-xml.xml", False, "", "");
http.setRequestHeader("Cache-Control", "max-age=0");
http.send();
можно использовать ServerXmlHttpRequest :
IXMLHTTPRequest http = CreateComObject("Msxml2.ServerXMLHTTP");
http.open("GET", "http://www.bankofcanada.ca/stat/fx-xml.xml", False, "", "");
http.setRequestHeader("Cache-Control", "max-age=0");
http.send();
или WinHttpRequest :
IWinHttpRequest http = CreateComObject("WinHttp.WinHttpRequest.5.1");
http.open("GET", "http://www.bankofcanada.ca/stat/fx-xml.xml", False, "", "");
http.setRequestHeader("Cache-Control", "max-age=0");
http.send();
Я обнаружил, что с помощью заголовка If-None-Match
указание значения, которое не соответствует ETag
последнего запроса, будет работать.
Например:
req.open("GET", url, false);
req.setRequestHeader("If-None-Match", "\"doesnt-match-anything\"");
req.send();
Это может потребовать или не потребовать, чтобы ответы включали ETag
. (Я пробовал это только с сервисом, который включает значение ETag
в каждом ответе.)
Не могли бы вы добавить фиктивный параметр в конце вашего URI, который меняется с каждым запросом?
http.open("GET", "http://www.bankofcanada.ca/stat/fx-xml.xml?requestID=42", False, "", "");
Я использую это для поддержания активности, и это прекрасно работает.
Хитрость заключается в том, чтобы использовать заголовок «If-Modified-Since» со значением более новым, чем кэшированное браузером.
g_AjaxObj.onreadystatechange = function() { if(g_AjaxObj.readyState === 4) { AjaxOnComplete_("KeepAlive"); }};
g_AjaxObj.open('GET', URL, true);
g_AjaxObj.setRequestHeader("If-Modified-Since", new Date().toUTCString());
g_AjaxObj.send(null);
Попробуйте отправить «cache-control: private» в качестве заголовка. Это сработало для меня:
var request = new XMLHttpRequest();
request.open("GET", 'http://myurl.com' , false);
request.setRequestHeader("cache-control", "private");
Я пишу HTML & amp; Приложение Javascript для Windows 8, где и без кеша, и с максимальным возрастом игнорируются. Для меня вышесказанное работает просто отлично.
Я не был знаком с заголовком, поэтому немного покопался в управлении кэшем: private ...
Indicates that all or part of the response message is intended for a single user and MUST NOT be cached by a shared cache, such as a proxy server.
Из Что такое Cache-Control: private? и http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Таким образом, в принципе, это никогда не создаст запись в кеше и, следовательно, не добавит записи в кеш, которые, как мы знаем, являются излишними, как в случае с параметром случайного числа «cache-buster».
Этот заголовок предназначен для сервера, и, поскольку браузер не выполняет никаких запросов, он бесполезен.
Простой трюк - загрузить страницу следующим образом:
http.open("GET", "http://www.bankofcanada.ca/stat/fx-xml.xml?"+Math.random(), False, "", "");
Недостатком является то, что вы заполняете кеш несколькими копиями одного и того же контента. Это может быть хаком с ошибочными агентами http - но реальное решение - работать с механизмами кэширования, а не против них. -
Я согласен, что это не идеальное и не совсем решение, но Mozilla на самом деле рекомендует это в качестве обходного пути, поэтому я считаю, что это не должно быть слишком ужасно - https: // developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Using_XMLHttpRequest
Кроме того, я рвал на себе волосы, пытаясь решить эту проблему. Я должен был положиться на своих пользователей, чтобы очистить их браузер (что они постоянно забывают делать). Так что это находка для меня!
Это сводило меня с ума. Эта тема была ближе всего к ответу. К сожалению, во время тестирования никто из них на самом деле не работал для меня. Единственное решение, которое я нашел и которое протестировало для правильной работы, это установка:
Заголовок Pragma: no-cache
Надеюсь, это спасет других от головной боли IE.
Кстати, это поток StackOverflow отлично подходит для того, чтобы пролить свет на разницу между Pragma и Cache-control: Разница между Pragma и Cache-control заголовками?