Эта функция клонирует звуковые объекты для списка изображений.
Проблема в том, что когда объект записывается в DOM, браузер запрашивает сервер, который загружает его как запрос 200. Тем не менее, он загружает только 4 разных звуковых файла, снова и снова. Поэтому он должен загружаться как запрос 304 из кэша браузера.
Все звуковые файлы изначально загружаются в HTML, а затем клонируются. Всякий раз, когда страница обновляется, звуковые файлы в HTML получают 304 запроса и загружаются из кеша, но любой клонированный файл загружается с запросом 200 (не из кеша)!
Есть ли у меня возможность клонировать эти объекты без отправки браузером запроса на загрузку сервера в DOM? Просто полностью на стороне клиента? Данные уже записаны в HTML один раз.
Я бы предпочел вообще не отправлять запросы на сервер для клонирования этих объектов. Поскольку он клонирует более 50, это 50 запросов, отправляемых на сервер в секунду. Перегрузка.
var increment = 0;
$("img").each(function(i) { //loop for each item
if (increment > 4){
increment = 0;
}
if (i != 0) { //only clone if there are more than one 'img' items
$("#hover-" + increment) //item to clone
.clone(true)
.attr("id", "beep-" + i) //new name of object
.appendTo($(this).parent());
}
$(this).data("instance", i); //save the integer for loop
increment=Math.floor(Math.random()*3); //change increment
})