Предположим, у меня есть скрипт, который должен что-то регистрировать на сервере.У меня есть конечная точка, такая как http://myServer.com/recordLog
, и я могу поразить ее некоторыми параметрами, и она сделает запись.Некоторые предостережения:
- Я могу контролировать то, что сервер возвращает
- Это будет происходить миллионы раз в день.
- Эффективность крайне важна.
- Сценарий может быть загружен с другого сервера и внутри iframe, поэтому проблемы с безопасностью браузера находятся в процессе.
- Меня не очень волнует ответ.Даже если произошел сбой связи, я не собираюсь ничего с этим делать.
- Я не могу ничего сделать, что повлияет на состояние остальной части страницы.
Моей первой мыслью было сделать вызов ajax - это выглядит как «современный», «правильный» способ сделать это.Однако в некоторых случаях это может вызвать проблемы безопасности между доменами.
Другая моя идея - загрузить в память изображение размером 1x1 или пустое <script>
.Что-то вроде:
var i = new Image;
i.src = "http://myserver.com/recordLog?foo=bar&baz=buz"; // returns 1x1 gif
или:
// this is similar to ajax-p, I suppose
var s = document.createElement('script');
s.type= 'text/javascript';
s.src= "http://myserver.com/recordLog?foo=bar&baz=buz"; // returns empty text file
Я почти уверен, что нет необходимости помещать изображение или скрипт в DOM.Простая установка src заставляет браузер сделать запрос.
Эти два очень похожи.Общий стандарт, кажется, использует пиксели, но я думаю, что это задержка.Я думаю, что пустой сценарий будет немного меньше для передачи.Есть ли преимущества у одного или другого?
Есть ли другие идеи / методы?Есть ли какие-то скрытые ошибки, о которых я не думаю (например, древние браузеры, которые не будут работать должным образом)?