Jump to content

Antoshka007

User
  • Posts

    105
  • Joined

  • Last visited

Everything posted by Antoshka007

  1. Переменная rooms передается в функцию setMinAndMaxRooms(). Переменная rooms является объектом, а объекты в JS передаются в функции по ссылке. Это значит, что при изменении объекта внутри функции, он меняется и за ее пределами. В первой строке setMinAndMaxRooms() первому параметру (которым является объект rooms) как раз задается свойство min.
  2. Всем привет! Никак не могу разобраться, в чем тут дело. В интернете тоже никакой информации о таком странном поведении браузера не нашел. Все браузеры корректно загружают файлы, кроме Safari. Подписываюсь на событие progress объекта XMLHttpRequest.upload и вывожу в консоль данные о загрузке файлов: console.log(e.loaded + ' from ' + e.total + ': ' + e.loaded / e.total * 100); И вот, что вижу в консоли: (см. фото) Текст "Данные полностью загружены на сервер!" выводится внутри обработчика события XMLHttpRequest.upload.onload. То есть когда данные, казалось бы, полностью загрузились, Safari как будто повторно пытается их загрузить. Кто-нибудь сталкивался с такой проблемой? P.S.: Загрузка осуществляется по средством jQuery.ajax: xhr: function() { _xhr = $.ajaxSettings.xhr(); _xhr.upload.onprogress = function(e) { console.log(e.loaded + ' from ' + e.total + ': ' + e.loaded / e.total * 100); }; return _xhr; } До этого делал нативным способом. Поведение не меняется. Спасибо!
  3. Всем привет! Заметил такую особенность, что при удалении тега <video> со страницы и даже при обnull'ении переменной видео все равно продолжает скачиваться с сервера. Как можно оставить загрузку? Спасибо!
  4. Всем привет! Никто не сталкивался с такой проблемой в Safari: при загрузке файлов на сервер (когда загрузка протекает не очень быстро) в событии progress свойство e.total увеличивается в 2 раза? То есть e.loaded принимает значение e.total, а после этого e.total становится 2*e.total и e.loaded снова начинает расти. Заранее спасибо!
  5. Вопрос удален!
  6. Привет! Никто не знает, как принудительно заставить браузер подгрузить видео. Дело в том, что иногда оно загружается очень уж медленно. Но если поставить его на паузу, то загрузка происходит довольно быстро. С чем связано такое поведение? И можно ли как-то заставить браузер так же быстро его грузить, не ставя при этом видео на паузу. Написал небольшой костыль. За это время успевают подгружаться 4-5 минутные видео точно, может и больше: video.play();setTimeout(function() { video.pause(); setTimeout(function() { video.currentTime = 0; video.play(); }, 1000);}, 500);Заранее спасибо!
  7. Да, да, спасибо!
  8. А в общем, чем они отличаются? С массивом на выходе получаются разные результаты
  9. Всем привет! Чем отличаются две следующие строки? obj.toString();Object.prototype.toString.call(obj);В первом случае контекст - это obj, во втором тоже. Или я что-то неправильно понимаю? Спасибо!
  10. Добрый день! Интересует такой вопрос: есть ли что-то плохое в делегировании событий? Хочу сделать динамическую подгрузку контента на всем сайте. И чтобы обработчик событий всегда работали, думаю, использовать делегирование. То есть все обработчики вешать через body: $('body').on('event', 'selector', func); Есть ли у этого какие-то побочные эффекты, чем это может обернуться? Или можно спокойно ставить все обработчики таким образом? Спасибо!
  11. Добрый день! Следующая ситуация: решил, вместо обновления страницы при переходе по пунктам меню использовать HTML5 History API и подгрузку контента через AJAX. Но ведь получается что после того, как я заменил основное содержимое страницы обработчики этого удаленного содержимого все еще висят где-то в памяти, так? Вот хотелось бы узнать, чем это чревато? Нужно ли после смены страницы очищать все обработчики предыдущей страницы или пускай они копятся и ничего плохого в этом нет? Спасибо!
  12. Спасибо! Поздно увидел ваш ответ и уже использовал jScrollPane. Этот попробую в другой раз=)
  13. Всем привет! Подскажите, как лучше сверстать вот такой вот блок - http://joxi.ru/KAgkLqgHQJnXAl И прилепить туда свой бегунок Заранее Спасибо!
  14. по моей ссылке тоже, если что =)даже в формате видео Из этого видео я понял только то, что нужно связывать со свойством объекта, а не просто с переменной. Возможно просто потому что не очень хорошо с английским. На stackoverflow на мой взгляд немного подробней.
  15. Всем привет! Интересует вопрос по создания многопользовательского приложения на AngularJS совместно с Firebase. Имею представление о том, как с ней работать, как сделать регистрацию и авторизацию, но не знаю, как лучше организовать структуру хранения данных. Приложение - простенький todolist с набором списков задач. Нужно, чтобы у каждого пользователя был свой набор списков и задач соответственно. Как лучше все это оформить, чтобы получение нужных данных не было слишком трудозатратным? Под каждого пользователя при регистрации создавать свой объект, в котором и хранить массив его списков или может как-то иначе? Был бы рад услышать мнение тех, кто уже сталкивался с подобной задачей или получить пару ссылок на статьи, если у кого-то вдруг завалялись=)
  16. Всем привет! Не так давно я задавал вопрос по поводу связывание внутри ng-repeat. Проблема была в том, что внутри блока с ng-repeat angular создает собственный scope для переменных внутри него и никак не привязывает их к переменным в scope контроллера. Вот пример кода представления: <li ng-repeat="item in items"> <div>{{item.name}}</div> <input ng-model="newItemName"></li>Не смотря на то, что в scope контроллера есть переменная newItemName, она никак не связана с той, что используется в input. Проблему я решил следующим образом: <li ng-repeat="item in items"> <div>{{item.name}}</div> <input ng-model="$parent.newItemName"></li>Таким образом angular не создает собственный экземпляр newItemName, а привязывает к переменной в scope контроллера. Но, когда я решил вынести эту лишку в отдельную директиву, почему-то такой подход перестал работать (angular больше не привязывает эту переменную к той, что находится в scope контроллера), не смотря на то, что в свойстве scope директивы стоит true. Не подскажете, как решить эту проблему?
  17. ну не обязательно же текст функции. В данном случае в аргумент передается именно вункция f, а не ее результат f(), так что вполне должно работать. А что касается 'r('+f+')', то это просто строчная нотация для setTimeout, setInterval ведь. Только ее вроде бы не советуют использовать, лучше было бы так написать: r(function(){ alert('DOM Ready!');})function r(f){ if(/in/.test(document.readyState)) { setTimeout(function(){ r(f); },9); } else { f(); }}Понятно, спасибо!
  18. Извиняюсь, плохо сформулировал вопрос. Почему именно так 'r('+f+')', ведь такой вариант тоже работает 'r(f)'?
  19. Всем привет! Такой вот вопрос по JQuery Trickshots: Для чего в setTimeout использовать такую запись 'r('+f+')' и почему именно 9 миллисекунд? r(function(){ alert('DOM Ready!');})function r(f){/in/.test(document.readyState)?setTimeout('r('+f+')',9):f()}
  20. Придумал вот такое решение, но что-то мне подсказывает, что можно это сделать и лучше: var taskIndex = $scope.findTask(taskId), currentProject = $rootScope.projects[$rootScope.selectedProjectIndex], realProject = $rootScope.projects[findProject(projectId)];if (currentProject.tasks[taskIndex].done) { currentProject.tasks[taskIndex].done = false;} else { currentProject.tasks[taskIndex].done = true;}$rootScope.projects.$save(realProject).then(function (ref) { for (var i = 0; i < realProject.tasks.length; i++) if (realProject.tasks[i].id == taskId) realProject.tasks[i] = currentProject.tasks[taskIndex];});Тут я просто в коллбеке делаю так, чтобы новый task снова ссылался на тот же объект. Поскольку перед сохранением все объекты синхронизируются, то все работает правильно.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy