Редко, в действительности, чтобы Вы хотели бы использовать массив. Определенно используйте List
любое время, Вы хотите добавить/удалить, что данные, начиная с изменения размеров массивов являются дорогими. Если Вы знаете, что данные являются фиксированной длиной, и Вы хотите микрооптимизировать для [приблизительно 1 127] очень конкретных причина (после сравнительного тестирования), то массив может быть полезным.
List
предложения партия [еще 1115] функциональность, чем массив (хотя LINQ выравнивает его немного), и почти всегда правильный выбор. За исключением params
аргументы, конечно.;-p
Как счетчик - List
одномерен; тогда как Вы имеете, имеют прямоугольный (и т.д.) выстраивает как int[,]
или string[,,]
- но существуют другие способы смоделировать такие данные (если Вам нужно) в объектной модели.
См. также:
Однако я делаю партия из использования массивов в моем protobuf-сеть проект; полностью для производительности:
byte[]
в значительной степени важно для кодирования; byte[]
буфер, который я заполняю прежде, чем отправить вниз к базовому потоку (и v.v.); более быстрый, чем BufferedStream
и т.д.; Foo[]
, а не List
), так как размер фиксируется когда-то созданный и должен быть очень быстрым. , Но это - определенно исключение; для общей обработки направления деятельности, List
победы каждый раз.
Кэширование Ajax возможно и предсказуемо (по крайней мере, в IE и Firefox).
В этом сообщении блога обсуждается кэширование Ajax и есть демонстрационная веб-страница:
Короткий ответ - нет. К сожалению, браузеры не кэшируют запросы AJAX так же надежно, как «обычные» страницы. (Хотя на самом деле данные могут быть кешированными, браузер часто не использует кеш при обработке запросов AJAX так, как вы ожидаете.) Это должно измениться в будущем, но пока вам нужно обойти это.
Вы можете проверить свои ресурсы с помощью дроида-эксперта по ресурсам , чтобы убедиться, что они делают то, что вы намереваетесь. Вы также должны запустить сетевую трассировку, чтобы дважды проверить заголовки запроса и ответа, используя что-то вроде Wireshark , на случай, если Firebug не рассказывает всю историю.
Возможно, jQuery включает некоторый запрос заголовки таким образом, чтобы браузер решил обойти кеш. Вы пробовали простой XMLHTTPRequest
без фреймворка?
Хотя это не "кеш браузера", а как насчет состояния сеанса или какой-либо другой формы сохранения на стороне клиента. Вам все равно придется изучить ситуацию, если она изменена, поскольку, как указано в вашем комментарии.
Браузер выиграл ' t изначально знает, были ли данные изменены или нет, поскольку json извлекал динамически, а то, что находится в кеше, является статическим. Я думаю?