Как я могу вызвать твердое обновление (ctrl+F5)?

Для этого вы можете использовать расширение NSArray из каркаса GameplayKit:

import GameplayKit

extension Collection {
    func shuffled() -> [Iterator.Element] {
        let shuffledArray = (self as? NSArray)?.shuffled()
        let outputArray = shuffledArray as? [Iterator.Element]
        return outputArray ?? []
    }
    mutating func shuffle() {
        if let selfShuffled = self.shuffled() as? Self {
            self = selfShuffled
        }
    }
}

// Usage example:

var numbers = [1,2,3,4,5]
numbers.shuffle()

print(numbers) // output example: [2, 3, 5, 4, 1]

print([10, "hi", 9.0].shuffled()) // output example: [hi, 10, 9]
27
задан Drew Noakes 28 October 2012 в 18:24
поделиться

6 ответов

Вам необходимо изменить имена внешних файлов, на которые вы ссылаетесь. Например, добавьте номер сборки в конец каждого файла, например style-1423.css, и сделайте нумерацию частью автоматизации сборки, чтобы файлы и ссылки каждый раз развертывались с уникальным именем.

16
ответ дан 28 November 2019 в 04:50
поделиться

Вместо номера сборки или случайного числа добавьте дату последнего изменения файла к URL-адресу в виде строки запроса программно. Это предотвратит любые несчастные случаи, когда вы забудете изменить строку запроса вручную, и позволит браузеру кэшировать файл, если он не изменился.

Пример вывода может выглядеть следующим образом:

<script src="../../Scripts/site.js?v=20090503114351" type="text/javascript"></script>
12
ответ дан 28 November 2019 в 04:50
поделиться

Что вы можете сделать, так это вызывать свой JS-файл со случайной строкой каждый раз, когда страница обновить. Таким образом, вы будете уверены, что он всегда свежий.

Вам просто нужно называть его так: «/path/to/your/file.js?[1147645 provided<random-number[1147647 provided>]»

Пример: jquery-min-1.2.6.js? 234266

2
ответ дан 28 November 2019 в 04:50
поделиться

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

Это работает в 90% случаев в наших тестовых средах.

4
ответ дан 28 November 2019 в 04:50
поделиться

В ссылках на файлы CSS и Javascript добавьте строку запроса версии. Увеличивайте его каждый раз, когда обновляете файл. Это будет игнорироваться веб-сайтом, но веб-браузеры будут рассматривать его как новый ресурс и повторно загружать его.

Например:

<link href="../../Themes/Plain/style.css?v=1" rel="stylesheet" type="text/css" />
<script src="../../Scripts/site.js?v=1" type="text/javascript"></script>
1
ответ дан 28 November 2019 в 04:50
поделиться

вы можете редактировать http-заголовки файлов, чтобы браузеры повторяли валидацию при каждом запросе

1
ответ дан 28 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

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