Я вижу два возможных решения.
1 Если вы используете ajax для получения новых плиток и не очень часто перезагружаете всю страницу, вы можете просто использовать объект, содержащий содержимое каждой плитки, используя уникальные идентификаторы плиток в качестве ключей, например:
var mapCache = {
'1' : "tile 1 data",
'2' : "tile 2 data"
//etc.
}
Когда пользователь запрашивает новые плитки, сначала проверьте, есть ли они в вашем объекте (вы знаете, какие плитки понадобятся для данной области), затем загрузите только то, что вам нужно, и добавьте новые пары ключ / значение в кэш. Очевидно, что все кэшированные данные исчезнут, как только пользователь перезагрузит страницу.
2 Если вы перезагружаете страницу для каждого запроса, вы можете разделить свои плитки на отдельные «файлы» javascript. Неважно, как это будет реализовано на сервере - статические файлы, такие как tile1.js, tile2.js и т. Д., Или динамический скрипт (возможно, с некоторым серверным кешем), такой как tile.php? Id = 1, tile. php? id = 2 и т. д. Важно то, что сервер отправляет правильные заголовки HTTP и позволяет браузеру кэшировать эти запросы. Таким образом, когда запрашивается страница, содержащая 144 фрагмента, у вас есть 144 элемента , каждый из которых содержит данные для одного фрагмента, и каждый из них будет храниться в кэше браузера. Это решение имеет смысл только в том случае, если для каждой плитки имеется много данных, а данные на сервере не очень часто меняются или / и при этом существует значительная стоимость генерации / передачи листов.