Вы можете подняться на вершину дерева каталогов, сохраняя имена по мере продвижения, а затем вставляйте имена вместе одновременно. По крайней мере, вы не делаете ненужных копий, нажимая на фронт.
int i = 0;
int j;
char temp*[MAX_DIR_DEPTH], file[LENGTH];
while (some_condition) {
temp[i++] = some_calculation_that_yields_name_of_parent_dir;
}
char *pCurrent = file;
for( j = i-1; j > 0; j-- )
{
strcpy(pCurrent, temp[j]);
pCurrent += strlen(temp[j]);
*pCurrent++ = '\';
}
strcpy(pCurrent, filename);
*pCurrent = 0;
Вообще говоря:
F5 может дать Вам ту же страницу, даже если содержание изменяется, потому что это может загрузить страницу из кэша. Но Ctrl - F5 вызывает обновление кэша и гарантирует, что, если содержание изменяется, Вы получите новое содержание.
Это до браузера, но они ведут себя похожими способами.
я протестировал FF, IE7, Opera и Chrome.
F5 обычно обновляет страницу, только если это изменяется. Браузер обычно пытается использовать все типы кэша как можно больше и добавляет заголовок "If-modified-since" к запросу. Opera отличается путем отправки "Управления Кэша: без кэшей".
CTRL - F5 используется для принуждения обновления, игнорируя любой кэш. IE7 добавляет "Управление Кэша: без кэшей", как делает FF, который также добавляет "Прагму: без кэшей". Chrome делает нормальный "If-modified-since", и Opera игнорирует ключ.
, Если я помню правильно, это был Netscape, который был первым браузером, который добавит поддержку управления кэша путем добавления "Прагмы: без кэшей", когда Вы нажали CTRL - F5 .
Редактирование: таблица
Updated приведенная ниже таблица обновляется с информацией о том, что произойдет, когда кнопка Обновить браузера будет нажата (после запроса Joel Coehoorn ), и "max-age=0" Заголовок управления кэша.
таблица Updated, 27 сентября 2010
┌────────────┬───────────────────────────────────────────────┐
│ UPDATED │ Firefox 3.x │
│27 SEP 2010 │ ┌────────────────────────────────────────────┤
│ │ │ MSIE 8, 7 │
│ Version 3 │ │ ┌─────────────────────────────────────────┤
│ │ │ │ Chrome 6.0 │
│ │ │ │ ┌──────────────────────────────────────┤
│ │ │ │ │ Chrome 1.0 │
│ │ │ │ │ ┌───────────────────────────────────┤
│ │ │ │ │ │ Opera 10, 9 │
│ │ │ │ │ │ ┌────────────────────────────────┤
│ │ │ │ │ │ │ │
├────────────┼──┼──┼──┼──┼──┼────────────────────────────────┤
│ F5│IM│I │IM│IM│C │ │
│ SHIFT-F5│- │- │CP│IM│- │ Legend: │
│ CTRL-F5│CP│C │CP│IM│- │ I = "If-Modified-Since" │
│ ALT-F5│- │- │- │- │*2│ P = "Pragma: No-cache" │
│ ALTGR-F5│- │I │- │- │- │ C = "Cache-Control: no-cache" │
├────────────┼──┼──┼──┼──┼──┤ M = "Cache-Control: max-age=0" │
│ CTRL-R│IM│I │IM│IM│C │ - = ignored │
│CTRL-SHIFT-R│CP│- │CP│- │- │ │
├────────────┼──┼──┼──┼──┼──┤ │
│ Click│IM│I │IM│IM│C │ With 'click' I refer to a │
│ Shift-Click│CP│I │CP│IM│C │ mouse click on the browsers │
│ Ctrl-Click│*1│C │CP│IM│C │ refresh-icon. │
│ Alt-Click│IM│I │IM│IM│C │ │
│ AltGr-Click│IM│I │- │IM│- │ │
└────────────┴──┴──┴──┴──┴──┴────────────────────────────────┘
Версии протестировали:
Примечания:
Версия 3.0.6 отправляет, я и C, но 3.1.6 открываем страницу в новой вкладке, выполняя нормальный запрос с только "I".
Версия 10.62 ничего не делает. 9.61 мог бы сделать C, если это не была опечатка в моей старой таблице.
Примечание о Chrome 6.0.472 : Если Вы делаете принудительную перезагрузку (как CTRL - F5 ), это ведет себя как URL, внутренне отмечен, чтобы всегда сделать принудительную перезагрузку. Флаг очищен, если Вы переходите к строке поиска и нажимаете Enter.
Когда пользовательский F5 нажатия, хотя новый запрос переходит к веб-серверу и получает ответ для запроса также. Но когда заголовок ответа Анализируется, он проверяет запрошенную информацию в кэш браузера. Если запрошенная информация в кэше не истекла тогда, что информация восстанавливается от в самом кэше.
, Когда пользователь нажимают CTRL - F5 , даже тогда новый запрос переходит к веб-серверу, и получите ответ. Но на этот раз когда заголовок ответа Анализируется, он не проверяет запрошенной информации в кэш и приносит весь обновленный информационный сервер формы только.
По крайней мере, в Firefox (v3.5) кеш, кажется, отключен , а не просто очищен. Если на странице есть несколько экземпляров одного и того же изображения, оно будет передано несколько раз. То же самое и с тегами img
, которые впоследствии добавляются через Ajax / JavaScript.
Итак, если вам интересно, почему браузер продолжает загружать один и тот же значок несколько сотен раз на вашем автозагрузке. обновите сайт Ajax, потому что вы изначально загрузили страницу с помощью CTRL - F5 .