Синтаксис и использование Javascript (Modernizr/YepNope.js)

На моем сайте используется пользовательская сборка Modernizr (включает только то, что мне нужно для тестирования). Тем не менее, я борюсь с JavaScript, и лучшее, что я могу сделать, это вырезать, вставить и молиться.

Я использую Modernizr.load для асинхронной загрузки ресурсов, но единственный способ заставить его работать — перейти на http://mothereffinghsl.com/ и скопируйте строки с 73 по 86 (я видел, как это использовалось в видеоуроке HTML5 Boilerplate)... Я опубликую свою версию:

<script>
  Modernizr.load({
    test: Modernizr.fontface,
    yep: [      
     ,'css!//static.adaminfinitum.com/css/lazy-fonts.css'      
    ],
    callback: function(url, testResult) {
    }
  });
</script>

С тех пор как я сделал это, документация на http://yepnopejs.com/ для YepNope части Modernizr значительно улучшилась, но я есть пара вопросов.

1.) Если я удалю теги ‹ script >, могу ли я просто вставить его прямо в мой файл Modernizr (в настоящее время он находится прямо перед закрывающим тегом body моих страниц)?

2.) Если я хочу знать, когда/как/что использовалось, мне нужно использовать console.log (пример ниже)?

Из документации yepnope:

yepnope({
  load: ["https:/­/my-cdn.com/jquery.min.js?v=1.7.1", "https:/­/my-cdn.com/jquery-ui.min.js?v=1.8.16"],
  callback: {
    "jquery.min.js": function () {
      console.log("jquery loaded!");
    },
    "jquery-ui.min.js": function () {
      console.log("jquery-ui loaded!");
    }
  }
});

В некоторых местах в документах я вижу, что они используют «оповещение», но кажется, что единственное место, где оно может предупреждать, — это запись на моем сервере, что, похоже, и делает console.log. Это правильно и просто другой способ формулировки или между ними есть разница?

Как вы понимаете, я новичок в JS, и все, чего я действительно хочу, — это иметь возможность получать статистику использования того, какая часть моего трафика поддерживала или не поддерживала данную функцию.

Примечание. Я прочитал здесь все, что казалось уместным, и несколько недель назад задал слишком широкий вопрос, который включал это (на самом деле было около 6 вопросов, разбитых на один... извините).

Спасибо

ОБНОВЛЕНИЕ: по какой-то причине использование «относительного протокола» URL-адреса, показанного выше (без http:), вызвало у меня много проблем с ошибками 404 (иногда это интерпретировалось как относительная ссылка), поэтому в итоге я добавил http: к ссылкам на ресурсы. .


person adam-asdf    schedule 10.11.2012    source источник
comment
Не то, о чем вы спрашивали, но я думаю, вам следует удалить запятую в строке ,'css!//static.adaminfinitum.com/css/lazy-fonts.css'.   -  person nnnnnn    schedule 10.11.2012
comment
Это имеет смысл, но кажется, что каждый раз, когда я балуюсь пробелами или знаками препинания в JS, я что-то ломаю... в любом случае, спасибо, я это сделаю.   -  person adam-asdf    schedule 11.11.2012


Ответы (1)


Вы правы в том, что вы можете вставить код JavaScript без тегов script в свой файл Modernizer, если вы сделаете это после определения объекта Modernizer, то есть в конце файла Modernizer.

Функция console.log регистрируется не в файле на вашем сервере, а в консоли JavaScript в вашем веб-браузере. Не во всех веб-браузерах есть консоль JavaScript, но в тех, в которых она есть, вы можете просматривать сообщения журнала и сообщения об ошибках. И в Firefox, и в Chrome есть консоли JavaScript, которые вы можете открыть. Помните, что console.log должен быть в вашем коде только для отладки.

Одно предостережение заключается в том, что в некоторых версиях Internet Explorer console.log не определено, когда консоль JavaScript не открыта в окне. Это приведет к неожиданной остановке вашего JavaScript. Используйте Firefox или Chrome, чтобы проверить, как работает ваш код, если у вас есть выбор, это может сэкономить вам много времени.

Функция alert менее удобна для отладки. В вашем браузере появится диалоговое окно с вашим сообщением. Вам нужно будет отклонить сообщение, чтобы продолжить работу с программой JavaScript. Опять же, на стороне сервера ничего не будет зарегистрировано.

person mwolfetech    schedule 10.11.2012
comment
Я полностью это понимаю, спасибо ... не нужно беспокоиться о том, что я использую IE, но я ценю вашу тщательность. - person adam-asdf; 11.11.2012