Найдено эта ссылка - перейти к разделу наследования
override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(employeeID, forKey: .employeeID)
}
Для декодирования я сделал это:
required init(from decoder: Decoder) throws {
try super.init(from: decoder)
let values = try decoder.container(keyedBy: CodingKeys.self)
total = try values.decode(Int.self, forKey: .total)
}
private enum CodingKeys: String, CodingKey
{
case total
}
Вы не можете. Информация о том, как клиент подключен (то есть, какие технологии он использует, если он является байтом или равноценным) на сервере, не является общедоступным. Возможно, вы сможете получить трассировку маршрута (со всеми проблемами, связанными с трассировкой), если это вам поможет, но эта информация не будет доступна JavaScript.
Что может сделать с JS - простая полоса пропускания тестирование. Загрузите файл с известным размером с помощью XHR и определите необходимое время.
Платная модель соединения - это абсолютные частные данные. Он также не будет отправлен на серверы в Интернете и не будет доступен для загруженного веб-сайта. Если вам нужна эта информация, чтобы предложить клиенту настраиваемое приложение, запросить пользователя напрямую. Он скажет вам, хочет ли он.
Но подождите. Последние Chrome и Firefox могут быть установлены (пользовательские предпочтения), чтобы предоставить данные об объекте experimental navigator.connection
.
Кроме того, для разработки приложений Metro Windows предлагает такую информацию на Windows.Networking.Connectivity
API , см. этот учебник .
Старый вопрос, но в поисках моих собственных целей я нашел это - мне еще нужно попробовать его, поэтому YMMV: https://github.com/ashanbh/detectClientSpeed .
Основополагающее понятие измерения времени для загрузки актива для получения информации о полосе пропускания является субъективным и не обязательно последовательным, но за исключением встроенного API платформы для iOS / Android, это не плохой вариант. Более легкая альтернатива может заключаться в том, чтобы измерять время ping на что-то вроде google.com.
Возможно, вы приближаетесь к нему неправильно. Посмотрите на модель Gmail. У них есть богатый клиент, который пользователь может отключить, если страница занимает много времени для загрузки. Стандартный клиент намного легче и использует более «традиционный» веб-дизайн. Пытаться автоматически обнаружить вещи, которые не предназначены, может привести вас к очень глубокой кроличьей дыре.
См. navigator.connection
(префикс). Этот API предоставляет информацию о пропускной способности клиента.