Nano Hash - криптовалюты, майнинг, программирование

Атрибут предварительной загрузки в видео HTML5 в директиве AngularJS не работает

Я использую директиву AngularJS для загрузки элемента видео в приложение AngularJS. Директива выглядит следующим образом:

app.directive("aVideo", function($http){
    return {
        template: '<video class="col-xs-12 col-sm-12 col-md-12" ng-src="[[[post.creative.media.mediaUri]]]" poster="[[[post.creative.posterUri]]]" controls crossorigin="anonymous" preload="none"</video>',
        transclude: true,
        scope:{
            post: "=",
        },
        link: function(scope, element, attrs) {         
            $(element).find("video").on("play", function () {
                $http.post('/post/' + scope.post.creative.cuid + '/views?_csrf=' + csrfToken)
                .success(function(data){

                })
                .error(function(error){             

                }); 
            });                     
        },
    }
});

Обратите особое внимание на атрибут шаблона в директиве. Когда браузер отображает страницу, выводится следующий HTML-код:

<video class="col-xs-12 col-sm-12 col-md-12" ng-src="https://xxx.blob.core.windows.net/creatives/6f728304eecc6a4348b87a2be0de0f954cd3.mp4" poster="https://xxx.blob.core.windows.net/creatives/e231b9d1-0df8-4a9f-81fd-70ad676d5698" controls="" crossorigin="anonymous" preload="none" < video src="https://xxx.blob.core.windows.net/creatives/6f728304eecc6a4348b87a2be0de0f954cd3.mp4"></video>

Во-первых, есть неожиданное «‹ видео», вставленное угловым в элемент видео. Во-вторых, вы можете видеть, что в html, возвращаемом браузеру, есть атрибуты 'ng-src' и 'src'. Наконец, атрибут «предварительная загрузка» не соблюдается, поскольку сетевые трассировки показывают мне, что все видеоэлементы, сгенерированные на странице с помощью этой директивы (всего 3), предварительно загружаются полностью параллельно.

Поэтому я ищу руководство о том, как правильно настроить директиву AngularJS для отображения видеоэлементов. Я особенно стремлюсь соблюдать атрибут «предварительная загрузка», поскольку предварительная загрузка всех видеоэлементов потребляет слишком много трафика на клиенте.


  • В вашем шаблоне нет закрывающего >. Если это единственная проблема с вашим вопросом, я предлагаю вам удалить его. 25.12.2014

Ответы:


1

В вашем шаблоне опечатка. Конец > открывающего тега отсутствует. Может быть, дело в том, что preload последний атрибут?

Кстати, атрибуты ng- не очищаются Angular, поэтому их присутствие в сгенерированном HTML является нормальным.

Обновление:

Согласно этой статье, вы не можете полагаться в атрибуте preload для обеспечения режима предварительной загрузки.

24.12.2014
  • Действительно, в шаблоне директивы была опечатка. Так легко наблюдать за такой простой проблемой, всегда хорошо иметь вторую пару глаз, смотрящую на ваш код! Однако атрибут предварительной загрузки по-прежнему игнорируется, несмотря на то, что html-код для видеоэлемента теперь правильный. Возможно, это больше не проблема angularjs, но все же все загруженные видеоэлементы загружаются полностью, несмотря на наличие preload=none 25.12.2014
  • Итак, теперь атрибут отображается в HTML, но безрезультатно? 25.12.2014
  • это верно. Фактический HTML-тег: ‹video class=col-xs-12 col-sm-12 col-md-12 ng-src=xxx.blob.core.windows.net/creatives/ poster=xxx.blob.core.windows.net/creatives/ control=controls crossorigin=anonymous preload=none src=xxx.blob.core.windows.net/creatives/› Все элементы видео загружены полностью. Это в Chrome на Windows. IE 11 не показывает такого же поведения. 25.12.2014
  • Итак, вы хотите пометить это как ответ или есть что-то еще, о чем вы все еще думаете? 25.12.2014
  • Сделанный. Я хотел бы, чтобы другие люди присоединились к нам, чтобы узнать, видели ли они такое поведение и/или работали ли над ним. Согласно ссылке, которой вы поделились выше, Chrome действительно учитывал атрибут предварительной загрузки в тестах, но мой, очевидно, нет. Так что либо это ошибка в Chrome, либо здесь есть что-то еще подозрительное. Спасибо. 25.12.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..