powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вывод картинок в цикле загрузки
90 сообщений из 90, показаны все 4 страниц
Вывод картинок в цикле загрузки
    #39346431
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
<input type="file" id="file" multiple accept="image/jpeg" >
<div id="list_files"></div>
<div id="pic_div" ></div>



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
document.getElementById('file').addEventListener('change', function (evt) {
                    var n = evt.target.files.length;
                    var a = 0;
                    for (var i = 0; i < n; i++) {
                        var reader = new FileReader();
                        $('#list_files').append('<span data-pic="' + i + '">' + this.files[i].name + ' &nbsp; &nbsp; &nbsp;</span>');
                        reader.onload = function (e) {
                            var pic = new Image();
                            pic.src = e.target.result;
                            $('#pic_div').append('<img class="pic_del" src="pic/del_.png" alt="" data-pic="' + a + '"/><img src="' + pic.src + '" alt="" data-pic="' + (a++) + '"/>');
                            $('#list_files').find('span[data-pic="' + (a - 1) + '"]').css('color', 'red');
                        };
                        reader.readAsDataURL(this.files[i]);
                    }
                }, false);




загрузка множества картинок - 10+
необходимо, что при загрузке очередного файла очередной span с именем менял цвет и сама картинка отображалась.
соответствие имени файла и картинки не обязательно порядок отображения картинок не важен
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346454
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, вот без лишних append и find, да и вообще без jQuery:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
  <input accept="image/jpeg" multiple onchange="onChange(this)" type="file">
  <div id="fileNames"></div>
  <div id="fileViews"></div>
  <script>
    var fileNames = document.querySelector('#fileNames'),
        fileViews = document.querySelector('#fileViews');

    function onChange(sender) {
      var i, l = sender.files.length;

      for (i = 0; i < l; i++) {
        previewImage(sender.files[i]);
      }
    }

    function previewImage(file) {
      if (!file) {
        return;
      }

      var fileName, image, reader = new FileReader();
      
      fileName = document.createElement('SPAN');
      fileName.innerHTML = file.name + ' &nbsp; &nbsp; &nbsp;';
      fileNames.appendChild(fileName);

      reader.onload = function() {
        image = new Image();
        image.height = 200;
        image.src = reader.result;
        
        fileName.style.color = 'red';
        fileViews.appendChild(image);
      }

      reader.readAsDataURL(file);
    }
  </script>
</body>
</html>


http://plnkr.co/edit/ovoMAUre1RkPoRlJAcji?p=preview
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346455
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
ты пробовал загрзить 20 картинок по 2,5м?
тож самое , что и мой вариант
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346456
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
ты пробовал загрзить 20 картинок по 2,5м?
тож самое , что и мой вариант
Пробовал. И 20, и 30.

В твоём варианте Image зачем-то два раза создаётся:
1. var pic = new Image()
2. <img src="' + pic.src + '" alt="" data-pic="' + (a++) + '"/>
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346457
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В IE подглючивает, вот немного доработанный вариант:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <input accept="image/jpeg" multiple onchange="onChange(this)" type="file">
  <div id="fileNames"></div>
  <div id="fileViews"></div>
  <script>
    var fileNames = document.querySelector('#fileNames'),
      fileViews = document.querySelector('#fileViews');

    function onChange(sender) {
      var i, l = sender.files.length;

      for (i = 0; i < l; i++) {
        previewImage(sender.files[i]);
      }
    }

    function previewImage(file) {
      if (!file) {
        return;
      }

      var fileName;

      fileName = document.createElement('SPAN');
      fileName.innerHTML = file.name + ' &nbsp; &nbsp; &nbsp;';
      fileNames.appendChild(fileName);

      setTimeout(function() {
        var image, reader;
        
        reader = new FileReader();
        reader.onload = function() {
          image = new Image();
          image.height = 200;
          image.src = reader.result;

          fileName.style.color = 'red';
          fileViews.appendChild(image);
        }
        reader.readAsDataURL(file);
      }, 0);
    }
  </script>
</body>
</html>


http://plnkr.co/edit/b7vPFLv6cQVJZTM8ksbB?p=preview
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346458
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадяskyANA,
ты пробовал загрзить 20 картинок по 2,5м?
тож самое , что и мой вариант
Пробовал. И 20, и 30.

В твоём варианте Image зачем-то два раза создаётся:
1. var pic = new Image()
2. <img src="' + pic.src + '" alt="" data-pic="' + (a++) + '"/>
там дальше используется...это просто выдранный кусок
проблема не в соответствии имен и картинок (это у тебя вроде соответствует, возможно пригодится)
а в том, что появлеие картинок должно быть постепенным, по одной, т.е. появление - это прогрессбар.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346460
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAпропущено...

Пробовал. И 20, и 30.

В твоём варианте Image зачем-то два раза создаётся:
1. var pic = new Image()
2. <img src="' + pic.src + '" alt="" data-pic="' + (a++) + '"/>
там дальше используется...это просто выдранный кусок
проблема не в соответствии имен и картинок (это у тебя вроде соответствует, возможно пригодится)
а в том, что появлеие картинок должно быть постепенным, по одной, т.е. появление - это прогрессбар.
Хм, а что сразу не написал? Я же просил: 19888206
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346462
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot skyANA]вадяпропущено...

Хм, а что сразу не написал? Я же просил: 19888206

авторнеобходимо, что при загрузке очередного файла очередной span с именем менял цвет и сама картинка отображалась.
19888274
вроде как сразу написал
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346464
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAпропущено...

Пробовал. И 20, и 30.

В твоём варианте Image зачем-то два раза создаётся:
1. var pic = new Image()
2. <img src="' + pic.src + '" alt="" data-pic="' + (a++) + '"/>
там дальше используется...это просто выдранный кусок
Что используется? У тебя два HtmlImageElement-а создаётся для отображения одной картинки. Зачем?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346465
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote вадя]skyANAвадяпропущено...

Хм, а что сразу не написал? Я же просил: 19888206

авторнеобходимо, что при загрузке очередного файла очередной span с именем менял цвет и сама картинка отображалась.
19888274
вроде как сразу написал
Хм, "появлеие картинок должно быть постепенным, по одной , т.е. появление - это прогрессбар" для меня означает, что сначала одну загрузили и она появилась, пошли загружать другую...
Как яблоки из мешка по одному доставать.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346466
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть вот так:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <input accept="image/jpeg" multiple onchange="onChange(this)" type="file">
  <div id="fileNames"></div>
  <div id="fileViews"></div>
  <script>
    var fileNames = document.querySelector('#fileNames'),
      fileViews = document.querySelector('#fileViews');

    function onChange(sender) {
      previewAll(sender.files);
    }

    function previewAll(files) {
      var i, l = files.length;
      
      previewImage(0);
      
      function previewImage(i) {
        var file = files[i], fileName;

        fileName = document.createElement('SPAN');
        fileName.innerHTML = file.name + ' &nbsp; &nbsp; &nbsp;';
        fileNames.appendChild(fileName);

        setTimeout(function() {
          var image, reader;

          reader = new FileReader();
          reader.onloadend = function() {
            image = new Image();
            image.height = 200;
            image.src = reader.result;

            fileName.style.color = 'red';
            fileViews.appendChild(image);
            
            i = i + 1;
            
            if (i < l) {
              previewImage(i);
            }
          }
          reader.readAsDataURL(file);
        }, 0);
      }
    }
  </script>
</body>
</html>


http://plnkr.co/edit/jFLG5a6kZhgbHxmlJrfy?p=preview
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346469
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХм, "появлеие картинок должно быть постепенным, по одной, т.е. появление - это прогрессбар" для меня означает, что сначала одну загрузили и она появилась, пошли загружать другую...
Как яблоки из мешка по одному доставать.
да.
если

Код: javascript
1.
2.
3.
 fileName.style.color = 'red';
        fileViews.appendChild(image);
console.log('ddddddddddddddddd');


то ddddddddddddddddd бедет выводиться последовательно
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346472
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
вот за это - спасибо.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346473
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а точно Париж - столица Франции?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346474
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

очень заметна разница между хромом и мозиллой раз в 5 хром быстрее
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346476
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторХм, "появлеие картинок должно быть постепенным, по одной, т.е. появление - это прогрессбар" для меня означает, что сначала одну загрузили и она появилась, пошли загружать другую...
Как яблоки из мешка по одному доставать.
да.
если

Код: javascript
1.
2.
3.
 fileName.style.color = 'red';
        fileViews.appendChild(image);
console.log('ddddddddddddddddd');



то ddddddddddddddddd бедет выводиться последовательно
Хм... Рассказать про event loop и асинхронные операции?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346477
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропила точно Париж - столица Франции?
это к чему?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346478
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
вот за это - спасибо.Да не за что. Было бы хорошо, если бы ты точнее проблему описывал, быстрее бы получил решение.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346480
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,

очень заметна разница между хромом и мозиллой раз в 5 хром быстрееХм, попробуй Worker + FileReaderSync.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346482
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХм... Рассказать про event loop и асинхронные операции?

вопрос в том что надо ставить в очередь и когда.
в моём варианте console.log выводило как файл загружался и прописывался в дом.
но это не вызывало отображение файла. это же и в твоих первых вариантах.
т.е. поток выполнения js блокирует отображение.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346483
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХм, попробуй Worker + FileReaderSync.
если только на досуге.
для меня основной - хром , ff -запасной для win xp,
всё остальное лесом...
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346492
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторХм... Рассказать про event loop и асинхронные операции?

вопрос в том что надо ставить в очередь и когда.
в моём варианте console.log выводило как файл загружался и прописывался в дом.
но это не вызывало отображение файла. это же и в твоих первых вариантах.
т.е. поток выполнения js блокирует отображение.
Нормально спроси, что тебе не понятно? Поток выполнения js блокирует отображение - это глупость какая-то.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346504
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA ! за идею отдельное спасибо.
но только можно и без setTimeout.

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
               document.getElementById('file').addEventListener('change', function (evt) {
                    var n = evt.target.files.length;
                    var a = 0;

                    vvv(this.files[a], a);

                    function vvv(file, i) {

                        var reader = new FileReader();
                        $('#list_files').append('<span data-pic="' + i + '">' + file.name + ' &nbsp; &nbsp; &nbsp;</span>');
                        reader.onload = function (e) {

                            $('#pic_div').append('<img class="pic_del" src="pic/del_.png" alt="" data-pic="' + a + '"/><img src="' + e.target.result + '" alt="" data-pic="' + i + '"/>');
                            $('#list_files').find('span[data-pic="' + i + '"]').css('color', 'red');
                            if (a++ < (n - 1)) {
                                vvv(evt.target.files[a], a);
                            }
                        };
                        reader.readAsDataURL(file);
                    }

                }, false);
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346509
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA ! за идею отдельное спасибо.
но только можно и без setTimeout.setTimeout я для IE впиндюрил: 19888451 .
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346512
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторХм, попробуй Worker + FileReaderSync.
если только на досуге.
для меня основной - хром , ff -запасной для win xp,
всё остальное лесом...
А чего там пробовать-то?

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <input accept="image/jpeg" multiple onchange="onChange(this)" type="file">
  <div id="files"></div>
  <script>
    var files = document.querySelector('#files'),
        fileWorker = new Worker('worker.js'),
        urlFactory = window.URL || window.webkitURL;

    function onChange(sender) {
      fileWorker.postMessage(sender.files);
    }

    fileWorker.onmessage = function(e) {
      var image = new Image(),
          imageBlob = new Blob([e.data], { type: "image/jpeg" });

      image.height = 200;
      image.src = urlFactory.createObjectURL(imageBlob);
      files.appendChild(image);
    }
  </script>
</body>
</html>


worker.js
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
self.addEventListener('message', function(e) {
  var fileReader = new FileReaderSync(),
      files = e.data, i, l = files.length;

  for (i = 0; i < l; i++) {
    postMessage(fileReader.readAsArrayBuffer(files[i]));
  }
}, false);


http://plnkr.co/edit/buYazmlUSzvx8gu5zEGD?p=preview
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346513
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадяskyANA ! за идею отдельное спасибо.
но только можно и без setTimeout.setTimeout я для IE впиндюрил: 19888451 .
слона не заметил :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346514
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
ну за это отдельное спасибо,
просто не было таких задач , чтоб требовалось
ну тут вот и задача и решение :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346515
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати ускоряем асинхронный вариант в Firefox:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <input accept="image/jpeg" multiple onchange="onChange(this)" type="file">
  <div id="fileNames"></div>
  <div id="fileViews"></div>
  <script>
    var fileNames = document.querySelector('#fileNames'),
        fileViews = document.querySelector('#fileViews'),
        urlFactory = window.URL || window.webkitURL;

    function onChange(sender) {
      previewAll(sender.files);
    }

    function previewAll(files) {
      var i, l = files.length;
      
      previewImage(0);
      
      function previewImage(i) {
        var file = files[i], fileName, image, imageBlob, reader;

        fileName = document.createElement('SPAN');
        fileName.innerHTML = file.name + ' &nbsp; &nbsp; &nbsp;';
        fileNames.appendChild(fileName);

        reader = new FileReader();
        reader.onloadend = function() {
          image = new Image();
          imageBlob = new Blob([reader.result], { type: "image/jpeg" });
          image.height = 200;
          image.src = urlFactory.createObjectURL(imageBlob);

          fileName.style.color = 'red';
          fileViews.appendChild(image);
            
          i = i + 1;
          
          if (i < l) {
            previewImage(i);
          }
        }
        reader.readAsArrayBuffer(file);
      }
    }
  </script>
</body>
</html>


http://plnkr.co/edit/DHhuC0mU3RV7uu2viKF6?p=preview
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346516
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в IE он тоже шустро работает и setTimeout не нужен.

И надо ещё прописать
Код: javascript
1.
2.
image.style.height = '200px';
image.style.width = 'auto';


вместо
Код: javascript
1.
image.height = 200;
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346518
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

только последний вариант странно работает в мозиле, имена по порядку, а картинки показывает (отображает, выводит) в случаном месте, а хром последовательно
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346525
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,

только последний вариант странно работает в мозиле, имена по порядку, а картинки показывает (отображает, выводит) в случаном месте, а хром последовательно
Что значит в случайном месте? Загружаются и выводятся они последовательно. Просто рендерятся хаотично.

Ну заметно быстрее, чем в твоём варианте :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346527
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, обрати внимание на то, что я использую reader.onloadend , а не reader.onload .
Так как последнее событие вызывается только при успешном чтении файла. Хотя может тебе и надо, чтобы "прогресс" прервался.

Также не зачем вызывать
Код: javascript
1.
$('#list_files').find('span[data-pic="' + i + '"]')


Метод .append() вернёт тебе ссылку на нужный span и не надо его искать.

Ну и код твой не плохо бы причесать для читабельности :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346530
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадяskyANA,

только последний вариант странно работает в мозиле, имена по порядку, а картинки показывает (отображает, выводит) в случаном месте, а хром последовательно
Что значит в случайном месте? Загружаются и выводятся они последовательно. Просто рендерятся хаотично.

Ну заметно быстрее, чем в твоём варианте :)
вот это и плохо, , что так рендерится
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346534
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадя, обрати внимание на то, что я использую reader.onloadend , а не reader.onload .
Так как последнее событие вызывается только при успешном чтении файла. Хотя может тебе и надо, чтобы "прогресс" прервался.

Также не зачем вызывать
Код: javascript
1.
$('#list_files').find('span[data-pic="' + i + '"]')


Метод .append() вернёт тебе ссылку на нужный span и не надо его искать.

Ну и код твой не плохо бы причесать для читабельности :)
1) это в данном случае не критично. но эту разницу знаю.
2) там логика несколько другая, поэтому так сделано, здесь вариант для «показа» варианта.
3) отлажу под конкретное своё — причешу.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346592
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAпропущено...

Что значит в случайном месте? Загружаются и выводятся они последовательно. Просто рендерятся хаотично.

Ну заметно быстрее, чем в твоём варианте :)
вот это и плохо, , что так рендерится
Да нормально. Просто дай задержку, прежде чем следующую картинку загружать.
С ней тоже будет гораздо быстрее, чем при использовании readAsDataURL .
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346593
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANAвадя, обрати внимание на то, что я использую reader.onloadend , а не reader.onload .
Так как последнее событие вызывается только при успешном чтении файла. Хотя может тебе и надо, чтобы "прогресс" прервался.

Также не зачем вызывать
Код: javascript
1.
$('#list_files').find('span[data-pic="' + i + '"]')



Метод .append() вернёт тебе ссылку на нужный span и не надо его искать.

Ну и код твой не плохо бы причесать для читабельности :)
1) это в данном случае не критично. но эту разницу знаю.
2) там логика несколько другая, поэтому так сделано, здесь вариант для «показа» варианта.
3) отлажу под конкретное своё — причешу.
А на мой взгляд хорошо быть более профессиональным, когда выкладываешь код на публичный форум, где его могут посмотреть, скопировать и использовать другие люди.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346595
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сокращённй вариант, убрано всё "лишнее"
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
                
                document.getElementById('file').addEventListener('change', function (evt) {
                    urlFactory = window.URL || window.webkitURL;
                    var n = evt.target.files.length;
                    var a = 0;
                    for (var i = 0; i < n; i++) {
                        $('#list_files').append('<span data-pic="' + i + '">█</span>');  //формирование длины прогрессбара
                    }
                    read_file(this.files[a], a);
                    function read_file(file, i) {
                        var reader = new FileReader();
                        reader.onload = function () {
                            $('#pic_div').append('<img src="' + urlFactory.createObjectURL(new Blob([reader.result], {type: "image/jpeg"}))  + '" alt="" />');
                            $('#list_files').find('span[data-pic="' + i + '"]').css('color', 'red'); //отобрвзение загрузки на прогрессбаре
                            if (a++ < (n - 1)) {
                                read_file(evt.target.files[a], a);
                            }
                        };
                        reader.readAsArrayBuffer(file);
                    }
                }, false);
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346599
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА на мой взгляд хорошо быть более профессиональным, когда выкладываешь код на публичный форум, где его могут посмотреть, скопировать и использовать другие люди.
здесь тоже публичный форум.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346600
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторА на мой взгляд хорошо быть более профессиональным, когда выкладываешь код на публичный форум, где его могут посмотреть, скопировать и использовать другие люди.
здесь тоже публичный форум.
Спасибо, кэп :) Я тебе вежливый совет даю.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346601
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
иногда важна голая идея, из которой можно развить что угодно :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346604
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, вот этого я в упор в твоём коде не понимаю:
Код: javascript
1.
$('#list_files').append('<span data-pic="' + i + '">█</span>')


Код: javascript
1.
$('#list_files').find('span[data-pic="' + i + '"]')


Во первых зачем 2 * n раз искать элемент с иденттификатором list_files ?
Во вторых зачем задавать span-у атрибут, куда прописывать индекс картинки, а потом искать по атрибуту со значением этого индекса, когда можно по индексу тупо достать дочерний элемент?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346605
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяskyANA,
иногда важна голая идея, из которой можно развить что угодно :)
Отмаза не канает, судя по данному топику пока ты свою голую идею обдумывал, я успел код написать, оформить, протестировать в разных браузерах, оптимизировать и ещё и вариант с воркером посмотреть.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346624
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAвадя, вот этого я в упор в твоём коде не понимаю:
Код: javascript
1.
$('#list_files').append('<span data-pic="' + i + '">█</span>')


Код: javascript
1.
$('#list_files').find('span[data-pic="' + i + '"]')


Во первых зачем 2 * n раз искать элемент с иденттификатором list_files ?
Во вторых зачем задавать span-у атрибут, куда прописывать индекс картинки, а потом искать по атрибуту со значением этого индекса, когда можно по индексу тупо достать дочерний элемент?
согласен.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346631
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОтмаза не канает, судя по данному топику пока ты свою голую идею обдумывал, я успел код написать, оформить, протестировать в разных браузерах, оптимизировать и ещё и вариант с воркером посмотреть.
тут дело не в том, что ты успел, а я не успел, мне нужно было применить эту идею в моём коде , а не просто кусок вставить. собственно код мне щас и помнить не надо , он может быть разным, а вот сама идея - её можно применять .
а то, что ты успел - так это взять одну вещь и рассмотреть со всех сторон. тут у нас разные цели. отобразить картинки для меня несамоцель, а маленький шажок.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346633
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторОтмаза не канает, судя по данному топику пока ты свою голую идею обдумывал, я успел код написать, оформить, протестировать в разных браузерах, оптимизировать и ещё и вариант с воркером посмотреть.
тут дело не в том, что ты успел, а я не успел, мне нужно было применить эту идею в моём коде , а не просто кусок вставить. собственно код мне щас и помнить не надо , он может быть разным, а вот сама идея - её можно применять .
а то, что ты успел - так это взять одну вещь и рассмотреть со всех сторон. тут у нас разные цели. отобразить картинки для меня несамоцель, а маленький шажок.
Да я к тому, что код оформить, перед тем как постить - это минутное дело. Не надо лень прикрывать какими-то идеями :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346635
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяотобразить картинки для меня несамоцель, а маленький шажок
Эх, долго же тебе идти. Удачи! :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39346735
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНе надо лень прикрывать какими-то идеями :)
подпишусь). Есть у Вади такой грешок с причёсыванием кода).
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39347627
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В защиту Вади - у него свой стиль,

для меня одинаково дико, что так
Код: javascript
1.
 i = i + 1;



что так
Код: javascript
1.
if (a++ < (n - 1)) {



Я себе некоторые хаки позволяю типа
Код: javascript
1.
!~str.indexOf(',')



Но стараюсь их делать как можно меньше, т.к. не всегда с утра разберешь чего "гениального" тут навоял.

Код должен поддерживаться, пока один и тебе комфортно, можно писать как хочешь.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39347659
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan,

Код: javascript
1.
if (a++ < (n - 1)) {


по поводу конкретного случая - я просто не смог тут ничего лучшего, если есть вариант - предлагайте
данная строка и мне не нравится.


авторЯ себе некоторые хаки позволяю типа
!~str.indexOf(',')
мне они тоже нравятся, только как их вспомнишь....
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39347783
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас бы писал так:
Код: javascript
1.
2.
3.
4.
5.
if (a < n - 1) 
{
     a++;
     read_file(evt.target.files[a], a);
}


по молодости бы писал так:
Код: javascript
1.
2.
if (a < n - 1) 
     read_file(evt.target.files[++a], a);
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348087
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanВ защиту Вади - пока один и тебе комфортно, можно писать как хочешь.
Выделил суть.

С этим не спорю, но к чему Вы это?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348237
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

К тому что у всех свои понятия о том как важно оформить код, не более.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348250
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanskyANA,

К тому что у всех свои понятия о том как важно оформить код, не более.
Ну да :) Многие даже в теги SRC его не заключают, когда на форум выкладывают.

Вы к чему ведёте-то?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348254
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanskyANA,
К тому что у всех свои понятия о том как важно оформить код, не более.
странно вы. Программируете, а не знаете что стандарты есть на всё.
Даже на высоту вашего стула где вы счас сидите.
Не знание стандартов не освобождает от ответственности (с)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348259
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan,
предлагаю в кнопку Вырезать, вместо ножниц нарисовать лобзик).
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348384
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

о.О вы подсматриваете за мной, откуда вы узнали, что я на стуле?

Я знаю только один язык программирования, где есть жесткий стандарт на разметку кода, это питон. Все остальные языки, особенно базированные на си-шном синтаксисе позволяют компилятору понимать код написанный в одну строку, либо в один столбик, либо как угодно.

Я только заметил, что каждый оформляет код так, как ему нравится и привел, на мой взгляд, кривой код оратора, который просил "сделать как правильно".

Что касается стандартов - мой код читается хорошо разными людьми с разными навыками (проверено неоднократно), он очень сильно отличается от типовых новомодных стандартов и ближе к тому, что когда-то проповедовали Керниган и Риччи.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348394
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanЯ только заметил, что каждый оформляет код так, как ему нравится
таки каждый?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348406
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanЧто касается стандартов - мой код читается хорошо разными людьми с разными навыками (проверено неоднократно)
ГУИ у вас тоже нестандартное?
19899397
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348411
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan,
слышал про такое "....палочки должны быть попендиулярны..."
это не нами сказано и, видимо, не про нас .... и слава богу :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348445
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ГУИ у вас тоже нестандартное?
GUI тут при чем?

Изопропилтаки каждый?
таки да. Если вам приходится не только манки-кодить, но и поддерживать свой манки-код, то через некоторое время образуются правила разметки, отступы от скобок, оформление джиквери-лапши, в частности лямбда функций, и прочая мелкая ерунда.

Существует конечно вариант, что вы приходите в команду и придерживаетесь общепринятых в ней стандартов или того хуже, весь код перед складыванием в гит проходит этап форматирования. Все по разному бывает, но если пишите сам и много все равно приходится решать как писать
Код: javascript
1.
2.
3.
4.
if(a==5) ;
if (a==5) ;
if( a== 5) ;
if ( a == 5 ) ;


и так далее
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348472
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanGUI тут при чем?
интересна твоя мера отрицания стандартов.
До какого края?
Если ты пишешь сам и под кроватью, то разумеется никаких правил нету.
Это банально.
Т.е. ты сказал банальные вещи.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348474
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanВсе по разному бывает
Конечно.
Но тогда, вадя ни при чём. Просто вы как и он высказали фразу максималиста для спора.
Удачи!
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39348618
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanЯ только заметил, что каждый оформляет код так, как ему нравится и привел, на мой взгляд, кривой код оратора, который просил "сделать как правильно".
Я не писал: причеши код.

А написал, что на мой взгляд хорошо бы причесать код, прежде чем в публичный доступ выкладывать. И аргументировал свой взгляд.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349185
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mage.lanGUI тут при чем?
интересна твоя мера отрицания стандартов.
До какого края?
Если ты пишешь сам и под кроватью, то разумеется никаких правил нету.
Это банально.
Т.е. ты сказал банальные вещи.
В данном случае все ваши суждения выглядят некрасиво.
Впрочем если вы не приведете пруф на стандарт оформления javascript, ну или хотя-бы какого-то языка программирования (если быть честными исключим Питон), то разговаривать больше не о чем.

skyANAЯ не писал: причеши код.

А написал, что на мой взгляд хорошо бы причесать код, прежде чем в публичный доступ выкладывать. И аргументировал свой взгляд.

Думаю вы не будете отрицать, что полушутливая фраза сказанная в своей компании, будучи написанной на бумаге, может стать очень обидной.

У меня нет претензии к вам, что вы Вадю просите оформить свой код.
Резануло меня следующее - "А на мой взгляд хорошо быть более профессиональным", плюс к этому вы не говорите как стать "более" профи. Выглядит со стороны как читсый дворовый наезд.
Это классика всех программистов, на любой запрос бизнеса говорить "это отстой, делать не будем", не предлагая ничего взамен.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349215
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanВ данном случае все ваши суждения выглядят некрасиво.
=== инженеры говорят - логично. Барышни - красиво\некрасиво.
Впрочем если вы не приведете пруф на стандарт оформления javascript, ну или хотя-бы какого-то языка программирования (если быть честными исключим Питон), то разговаривать больше не о чем.
я пишу по венгерской нотации. А что?
https://ru.wikipedia.org/wiki/Венгерская_нотация

от Оракле
http://www.oracle.com/technetwork/java/codeconventions-135099.html
от работодателя приводить не будем)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349218
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanРезануло меня следующее
не ходите в публику....публичный мужской форум.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349310
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanskyANAЯ не писал: причеши код.

А написал, что на мой взгляд хорошо бы причесать код, прежде чем в публичный доступ выкладывать. И аргументировал свой взгляд.

Думаю вы не будете отрицать, что полушутливая фраза сказанная в своей компании, будучи написанной на бумаге, может стать очень обидной.
Не буду. Но мне отсюда не видно эмоции собеседника, я просто стараюсь писать вежливо.

mage.lanУ меня нет претензии к вам, что вы Вадю просите оформить свой код.
Резануло меня следующее - "А на мой взгляд хорошо быть более профессиональным", плюс к этому вы не говорите как стать "более" профи. Выглядит со стороны как читсый дворовый наезд.
Это классика всех программистов, на любой запрос бизнеса говорить "это отстой, делать не будем", не предлагая ничего взамен.Хм, предложите свой вариант написания.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349404
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я пишу по венгерской нотации. А что?
Вы либо прикидываетесь, либо вообще не понимаете о чем я.

Кстати, как вы обозначаете функции, которые могут вернуть чего-то: или число, или строку, или логику?

Petro123не ходите в публику....публичный мужской форум.
Обычный мужчина открыв дверь и увидев обнаженную женщину закроет дверь с возгласом "Извините мэм!", джентельмен с возгласом "Извините сэр!", боюсь вы так и останетесь стоять...

skyANAХм, предложите свой вариант написания.
Для Вади? Думаю, он сам определится в какой нотации ему писать переменные в under_score или camelCase, это случится со временем.

Тем более что мы так широко расставили акценты на этой теме.
Культуру написания кода бесполезно прививать, это так же как менять почерк.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349452
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanКультуру написания кода бесполезно прививать, это так же как менять почерк.
Если вы, гражданские, такие умные, то почему строем не ходите?(с)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349503
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanВы либо прикидываетесь, либо вообще не понимаете о чем я.
вы из группы беспредельщиков)) вместе с вадей.
Это те 1-2 программиста из ста по статистике, которые не приемлют стандарты\правила\мейнстрим технологии.
Т.е. самородки профессионалы.
mage.lanКстати, как вы обозначаете
это в ПТ.
mage.lanКультуру написания кода бесполезно прививать, это так же как менять почерк.
у одного-двух процентов.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349599
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanskyANAХм, предложите свой вариант написания.
Для Вади? Думаю, он сам определится в какой нотации ему писать...
Нет, предложите вариант как написать человеку о том, что тебе не нравится когда выкладывают на публичный сайт не причёсаный код. И чтобы его при прочтении не резануло.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349659
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНет, предложите вариант как написать человеку о том, что тебе не нравится когда выкладывают на публичный сайт не причёсаный код. И чтобы его при прочтении не резануло.
обсуждать нравится / не нравится чей-то код - тоже самое что обсуждать нравится / не нравится "Черный квадрат" Малевича
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349667
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вы из группы беспредельщиков)) вместе с вадей.
Это те 1-2 программиста из ста по статистике, которые не приемлют стандарты\правила\мейнстрим технологии.
Т.е. самородки профессионалы.

Сочту за комплимент.
Если за новые технологии вы принимаете кучу вброса от гугла и фейсбука, то я лучше пропущу этот бронепоезд.
Изумрудов, которые стоит пользовать не так много, например handlebars вполне заслуживает доверия, jQuery можно аккуратно пользовать, чтобы решать бизнес задачи, ну и еще пару проверенных временем библиотек.

skyANAНет, предложите вариант как написать человеку о том, что тебе не нравится когда выкладывают на публичный сайт не причёсаный код. И чтобы его при прочтении не резануло.
Предлагаю Ваде просто не показывать готовый вариант кода, тогда все будут довольны.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349672
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Я не на тот вопрос ответил.
Если вы решаете проблему для себя, берете чужой код, причесываете на ваш вкус и выкладываете следом.
Тем самым у всех будет выбор брать Вадин код или его более профессиональный вариант.
Да и сам Вадя если ему понравится как вы оформили, тоже возьмет ваш кусок, а может и переучится под ваш стиль.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349708
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan, как-то Вы всё усложняете, речь не о том, какой вариант оформления выбрать :)

И Вадя таки выложил готовый и причёсаный вариант кода из которого убрал всё лишнее: 19889529 .
При этом не думаю, что он сильно напрягся.

Почему бы нам всем не делать этого сразу перед тем, как выкладывать?
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349746
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanСочту за комплимент.
Кому как.
Некоторые работу не могут найти и бедствуют. Т.к. не могут работать в команде.
Вот если бы вас было не 1 процент, а 10-20. Тогда _вам_ было бы проще. А нам сложнее.
На пустом месте (код форматнуть) проблему раздувать.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349779
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Об форматировании текста.

Вот сейчас продемонстрирую мой стиль форматирования ...
И уверен очень многим он не понравится.
И у каждого из нас свой стиль ...
// ----------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
// --- IGlobalInterfaceTable interface                     https://msdn.microsoft.com/library/windows/desktop/ms678517
//                                                         Enables any apartment in a process to get access to an interface implemented on an object in any other apartment in the process.
//
//     В _AtlModule может быть много COM объектов. 
//     Этот интерфейс позволяет получить доступ к интерфесам разных COM объектов.
//
 CComPtr< IGlobalInterfaceTable >  ppGIT;                  // Pointer to the Global Interface Table

 hr = _AtlModule.GetGITPtr( 
  (IGlobalInterfaceTable **)&ppGIT
 );
 
 if ( FAILED( hr )      || 
      ppGIT == nullptr 
    )
  return  0;

// --- Проще всего в ATL получить pointer to the Global Interface Table можно путем доступа к member CAtlModule::m_pGIT
//
//     CAtlModule Class                                    https://msdn.microsoft.com/en-us/library/windows/desktop/hhz4ew64(v=vs.120).aspx
//                                                         This class provides methods used by several ATL module classes.
//
 CComPtr< IGlobalInterfaceTable >  ppGIT02;                // Pointer to the Global Interface Table

 ppGIT02 = _AtlModule.m_pGIT;

// --- Ниже продемонстрировано как получить pointer to the Global Interface Table без использования ATL
//
  void  **gpGIT;

 hr = CoCreateInstance(
  CLSID_StdGlobalInterfaceTable,
  NULL,
  CLSCTX_INPROC_SERVER,
  IID_IGlobalInterfaceTable,
  (void **)&gpGIT
 );


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
// --- Interface IInitDone
//
public:

STDMETHOD( Init                ) ( IDispatch *pConnection);
STDMETHOD( Done                ) ();
STDMETHOD( GetInfo             ) ( SAFEARRAY **pInfo);

// --- Interface ILanguageExtender
//
public:

STDMETHOD( RegisterExtensionAs ) ( BSTR *bstrExtensionName);

STDMETHOD( GetNProps           ) ( long *plProps );
STDMETHOD( FindProp            ) ( BSTR bstrPropName,   long       *plPropNum      );
STDMETHOD( GetPropName         ) ( long lPropNum,       long       lPropAlias,    BSTR *pbstrPropName );
STDMETHOD( GetPropVal          ) ( long lPropNum,       VARIANT    *pvarPropVal    );
STDMETHOD( SetPropVal          ) ( long lPropNum,       VARIANT    *pvarPropVal    );
STDMETHOD( IsPropReadable      ) ( long lPropNum,       BOOL       *pboolPropRead  );
STDMETHOD( IsPropWritable      ) ( long lPropNum,       BOOL       *pboolPropWrite );

STDMETHOD( GetNMethods         ) ( long *plMethods);
STDMETHOD( FindMethod          ) ( BSTR bstrMethodName, long       *plMethodNum    );
STDMETHOD( GetMethodName       ) ( long lMethodNum,     long       lMethodAlias,  BSTR *pbstrMethodName);
STDMETHOD( GetNParams          ) ( long lMethodNum,     long       *plParams       );
STDMETHOD( GetParamDefValue    ) ( long lMethodNum,     long       lParamNum,     VARIANT *pvarParamDefValue);
STDMETHOD( HasRetVal           ) ( long lMethodNum,     BOOL       *pboolRetValue );
STDMETHOD( CallAsProc          ) ( long lMethodNum,     SAFEARRAY  **paParams     );
STDMETHOD( CallAsFunc          ) ( long lMethodNum,     VARIANT    *pvarRetValue, SAFEARRAY **paParams );

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
// --- Flag values
//     -----------

enum OpenFlags {

 modeRead         = ( int ) 0x00000, 
 modeWrite        = ( int ) 0x00001, 
 modeReadWrite    = ( int ) 0x00002, 
 shareCompat      = ( int ) 0x00000, 
 shareExclusive   = ( int ) 0x00010, 
 shareDenyWrite   = ( int ) 0x00020, 
 shareDenyRead    = ( int ) 0x00030, 
 shareDenyNone    = ( int ) 0x00040, 
 modeNoInherit    = ( int ) 0x00080, 
 modeCreate       = ( int ) 0x01000, 
 modeNoTruncate   = ( int ) 0x02000, 
 typeText         = ( int ) 0x04000,                       // typeText and typeBinary are
 typeBinary       = ( int ) 0x08000,                       // used in derived classes only
 osNoBuffer       = ( int ) 0x10000, 
 osWriteThrough   = ( int ) 0x20000, 
 osRandomAccess   = ( int ) 0x40000, 
 osSequentialScan = ( int ) 0x80000, 

};


Почему так?
Потому что код readable.

Как поступаю с хорошим кодом, но плохо отформатированным?
Молча форматирую и холивары не развожу.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349868
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Кому как.
Некоторые работу не могут найти и бедствуют. Т.к. не могут работать в команде.
Вот если бы вас было не 1 процент, а 10-20. Тогда _вам_ было бы проще. А нам сложнее.
На пустом месте (код форматнуть) проблему раздувать.

Не очень понимаю ваше разделение на ваших и наших.
Не очень понимаю ваше "не могут работать в команде", это как? Люди настолько интроверты, что только хардкор, консоль и емакс?

Если человек может себе позволить "не мочь работать в команде" и сидеть у кого-то на шее и плакаться, это не специалист, я бы его ни к вашим ни к нашим не стал относить.

Я не лезу со своим уставом в чужую церковь, я говорю ровно обратное, вы знаете как правильно? покажите, не можете - какой смысл говорить, что это плохо. Если мне что-то не нравится и я могу предложить что-то лучшее - я буду предлагать, по крайней мере первые раза 3-4...
На текущей работе, например, я переписал проект с кофескрипта, по сути написал с нуля. Через год переписал легкую админку с ангуляра, потому-что ангуляр никто не мог адекватно поддерживать. Теперь все легко и просто, новые фичи вводятся за очень короткое время.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349871
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Кому как.
Некоторые работу не могут найти и бедствуют. Т.к. не могут работать в команде.
Вот если бы вас было не 1 процент, а 10-20. Тогда _вам_ было бы проще. А нам сложнее.
На пустом месте (код форматнуть) проблему раздувать.

Не очень понимаю ваше разделение на ваших и наших.
Не очень понимаю ваше "не могут работать в команде", это как? Люди настолько интроверты, что только хардкор, консоль и емакс?

Если человек может себе позволить "не мочь работать в команде" и сидеть у кого-то на шее и плакаться, это не специалист, я бы его ни к вашим ни к нашим не стал относить.

Я не лезу со своим уставом в чужую церковь, я говорю ровно обратное, вы знаете как правильно? покажите, не можете - какой смысл говорить, что это плохо. Если мне что-то не нравится и я могу предложить что-то лучшее - я буду предлагать, по крайней мере первые раза 3-4...
На текущей работе, например, я переписал проект с кофескрипта, по сути написал с нуля. Через год переписал легкую админку с ангуляра, потому-что ангуляр никто не мог адекватно поддерживать. Теперь все легко и просто, новые фичи вводятся за очень короткое время.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349880
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПочему бы нам всем не делать этого сразу перед тем, как выкладывать?
В порыве созидания, когда ты думаешь о вечном, отрываться на какие-то мелочи...

Хотя и с Вами, я тоже могу согласится, публичный ресурс, неокрепшие умы могут взять на заметку плохой стиль... Дьявол в мелочах.
Сдаюсь.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349903
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanskyANAПочему бы нам всем не делать этого сразу перед тем, как выкладывать?
В порыве созидания, когда ты думаешь о вечном, отрываться на какие-то мелочи...
Дак и не отрывайтесь :) Закончите созидать, а потом уже результат публикуйте.

mage.lanХотя и с Вами, я тоже могу согласится, публичный ресурс, неокрепшие умы могут взять на заметку плохой стиль... Дьявол в мелочах.
Даже не взять на заметку, а взять и скопировать в проект :)
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349931
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДаже не взять на заметку, а взять и скопировать в проект :)
простое копирование смысла не имеет.
это как в притче про голодного - не надо кормить , а надо научить рыбачить.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349953
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
в конце концов это не по товарищески)).
Есть правила хорошего тона. А есть плохого.
Что ты тут споришь).
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39349987
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторДаже не взять на заметку, а взять и скопировать в проект :)
простое копирование смысла не имеет.
это как в притче про голодного - не надо кормить, а надо научить рыбачить.
Вы мастак говорить очевидные вещи :) Вот только как люди гуглили и копировали себе первое попавшееся решение, так и будут гуглить и копировать.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350245
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяэто как в притче про голодного - не надо кормить , а надо научить рыбачить.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350250
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
хороший пример подмены...
я сказал - научить
а дать и научить два разных понятия.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350264
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяhVostt,
хороший пример подмены...
я сказал - научить
а дать и научить два разных понятия.

Вообще-то не разные. Обучать интересно, если ты сам от этого что-то получаешь, как минимум результат. Если ничего не получаешь, это потеря времени.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350273
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВообще-то не разные. Обучать интересно, если ты сам от этого что-то получаешь, как минимум результат. Если ничего не получаешь, это потеря времени.
давать что-то ещё более не интересно...
давать - это давать что-то материальное.
обучать - делиться информацией
если даёшь что-то материальное - значит это что-то у становится у тебя меньше.
если обучаешь - просто делишся знаниями, у тебя при этом ничего не убывает.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350302
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяесли даёшь что-то материальное - значит это что-то у становится у тебя меньше.
если обучаешь - просто делишся знаниями, у тебя при этом ничего не убывает.

Ты рассуждаешь очень и очень однобоко, плоско, и узко.

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

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


вадяобучать - делиться информацией

И это не верно. Порой более эффективное обучение это не давать информацию, а давать верное направление.
...
Рейтинг: 0 / 0
Вывод картинок в цикле загрузки
    #39350314
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
тут можно оспорить каждое слово, но это будет совсем другая история...
...
Рейтинг: 0 / 0
90 сообщений из 90, показаны все 4 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вывод картинок в цикле загрузки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]