powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Javascript. Ссылка на экземпляр.
50 сообщений из 50, показаны все 2 страниц
Javascript. Ссылка на экземпляр.
    #38347759
lanzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Учебник гласит, экземпляр литерала функции или переменной является неименованным объектом, который именуется только ссылкой, которая на него ссылается.

Не пойму следующее.

window.my_function, window.my_var
- эти свойства содержат ссылки на экземпляры, или объект записан непосредственно в них?
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38347762
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все JS ссылки и информация по этим ссылкам хранится пока на них есть хоть однин указатель
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38347767
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lanzerwindow.my_function, window.my_var
- эти свойства содержат ссылки на экземпляры, или объект записан непосредственно в них?это ссылки.

хотя, если в window.my_var хранится число или строка (в общем, простой тип), то непонятно, что там, может, и сами данные напрямую.

а функция - это объект, так что window.my_function точно будет ссылкой.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38347860
lanzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, никто толком ни знает, если по чесноку.

Качайте учебник "Дэвид Флэнаган. Javascript. Подробное руководство. 6-е издание" .pdf. После убогого псевдоучебника на javascript.ru, который только и оставляет непонятки, этот как бальзам на душу.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38348216
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lanzerЛадно, никто толком ни знает, если по чесноку.

Качайте учебник "Дэвид Флэнаган. Javascript. Подробное руководство. 6-е издание" .pdf. После убогого псевдоучебника на javascript.ru, который только и оставляет непонятки, этот как бальзам на душу.
Я так понял Вы нашли там ответ на ваш вопрос, не могли бы вы его процитировать?
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38348280
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lanzerЛадно, никто толком ни знает, если по чесноку.
Храброе заявление.

lanzerНе пойму следующее.

window.my_function, window.my_var
- эти свойства содержат ссылки на экземпляры, или объект записан непосредственно в них?
Если речь идет об объектах, то в переменных хранятся только ссылки на тот объект.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349300
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lanzerУчебник гласит, экземпляр литерала функции или переменной является неименованным объектом, который именуется только ссылкой, которая на него ссылается.

Не пойму следующее.

window.my_function, window.my_var
- эти свойства содержат ссылки на экземпляры, или объект записан непосредственно в них?


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

По сути вопроса. в js как и в любом языке есть простые типы и сложные. Всё, что относится к сложным типам в js считается объектом (массив, функция, объект). Остальные типы, не являющиеся потомками перечисленных являются простыми.
Так вот, все значения сложных типов передаются не по значению, а по ссылке, то есть передача в функцию, присвоение a=b и др. операции, не ведут к копированию данного значения по новому адресу, а всего лишь создают новые ссылки на уже существующее значение. А значит, если в переменной лежит объект, функция или массив - то физически в переменной лежит просто ссылка на значение. Если же в ней значение любого другого типа - тогда оно физически лежит в самой переменной.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349489
lanzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше всех ответил Программер :)
Программер, как всегда даете грамотный ответ не в первый раз. Большое спасибо.

авторЯ так понял Вы нашли там ответ на ваш вопрос, не могли бы вы его процитировать?
Программер все объяснил. Но книжку все равно читайте.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349490
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lanzerавторЯ так понял Вы нашли там ответ на ваш вопрос, не могли бы вы его процитировать?
Программер все объяснил. Но книжку все равно читайте.Значит цитаты не будет. Жаль
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349508
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрЕсли же в ней значение любого другого типа - тогда оно физически лежит в самой переменной.рискну предположить, что строки, будучи по классификации "простым типом", всё-таки являются объектами, и var str = "aaa" будет ссылкой. Только не совсем ясно, ссылкой на что именно - либо просто на начало массива с символами, либо на какой-то промежуточный объект (в котором хранится этот массив плюс вспомогательные данные). Истина скрыта в глубинах движка.

Т.е. вряд ли var str2 = str приведет к физическому копированию всей строки (в отличии, например, от чисел и булов, где это разумно).
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349524
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёрЕсли же в ней значение любого другого типа - тогда оно физически лежит в самой переменной.рискну предположить, что строки, будучи по классификации "простым типом", всё-таки являются объектами, и var str = "aaa" будет ссылкой. Только не совсем ясно, ссылкой на что именно - либо просто на начало массива с символами, либо на какой-то промежуточный объект (в котором хранится этот массив плюс вспомогательные данные). Истина скрыта в глубинах движка.

Т.е. вряд ли var str2 = str приведет к физическому копированию всей строки (в отличии, например, от чисел и булов, где это разумно).

Приведёт. Со строками вообще всё конечно сложно. Но...
В js есть тип String (если не ошибаюсь так), который является объектом. А есть обычная строка, которая является просто последовательностью символов. Так вот, единственная хитрость, которая может быть вшита внутрь движка - это механизм copy-on-write (когда значение копируется в момент изменения). Но в итоге внешне мы не заметим разницы между копировании сразу и копировании при изменении.
То есть я рассуждаю так, есть код:
Код: javascript
1.
2.
3.
var str = "hello";
var str2 = str; //теперь str2 = "hello"
str2[1]="a"; //str2 = "hallo", str = "hello"


Если бы в str и str2 лежала бы ссылка на строку (получается на одну и ту же строку), то изменение str2 привело бы к изменению str. А раз этого не происходит, значит в какой-то момент происходит копирование значения по новому адресу.

Вроде так... Но если ошибаюсь где - поправьте :)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349529
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во многих платформах (.net, java, javascript) строки являются immutable для оптимизации. Это значит, что строка существует как незменяемый объект в едином буфере строк, а все переменные ссылаются на нужный экземпляр. Работает тот же GC, когда неиспользуемые строки освобождают память. Строку нельзя изменить, её можно только создать с новым значением. Т.е. даже при операции str+="a" создается новая строка и ссылка на неё присваивается переменной. Именно поэтому операции изменения строк в цикле считаются неэффективными и для того же JS рекомендуется собирать строку в массиве с последующим вызовом join - тогда новая строка будет создана один раз в самом конце.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349538
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёр
Код: javascript
1.
str2[1]="a"; //str2 = "hallo"

эксперименты показывают, что это не так. )
строку нельзя менять присваиванием символа (а в IE даже нельзя узнать значение str2[1], требуется str2.charAt(1))
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349653
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёр
Код: javascript
1.
str2[1]="a"; //str2 = "hallo"

эксперименты показывают, что это не так. )
строку нельзя менять присваиванием символа (а в IE даже нельзя узнать значение str2[1], требуется str2.charAt(1))

Жееесть. Это невозможно.... То есть я проверил, и оказалось что Вы правы.
Но что за бред, почему интерпретатор ошибку не выплюнул? Я то проверял только str, что бы доказать, что она равна "hello".
А много таких конструкций в данном языке, которые ничего не делают? :)

Так, по поводу ссылок... По поводу js есть поправка. То есть js всего лишь имитирует простые типы данных. Если рассматривать физическое устройство хранения тех же int, float, boolean, string и т.д., то всё это является объектами внутри :). то есть alert(myVar.constructor) для любой переменной выводит её конструктор. А то есть физически получается на всё в переменных хранятся именно ссылки. Но имитируя простые типы js просто получается копирует объекты при изменении.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349695
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрто есть физически получается на всё в переменных хранятся именно ссылки. Но имитируя простые типы js просто получается копирует объекты при изменении.
Это для конечного программирования не важно. Достаточно правильно делить на "примитивы" и "объекты".
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349709
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaПрограмёрто есть физически получается на всё в переменных хранятся именно ссылки. Но имитируя простые типы js просто получается копирует объекты при изменении.
Это для конечного программирования не важно. Достаточно правильно делить на "примитивы" и "объекты".

да да... именно об этом я и говорил в первом сообщении. А вот прошлое дополнил просто во избежания разногласий с Яростный Меч, ведь по сути он тоже прав (говоря что строка - это также объект) :)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349728
зыВо многих платформах (.net, java, javascript) строки являются immutable для оптимизации. Это значит, что строка существует как незменяемый объект в едином буфере строк, а все переменные ссылаются на нужный экземпляр. Работает тот же GC, когда неиспользуемые строки освобождают память. Строку нельзя изменить, её можно только создать с новым значением. Т.е. даже при операции str+="a" создается новая строка и ссылка на неё присваивается переменной. Именно поэтому операции изменения строк в цикле считаются неэффективными и для того же JS рекомендуется собирать строку в массиве с последующим вызовом join - тогда новая строка будет создана один раз в самом конце.Сведения устаревшие. Поск конкат строк в цикле самая "нативная" для больш программистов, все ведущие движки серьезно над ней поработали.
Прим год назад спец проводили исслед (сбор инфи и некот тесты), чтобы для себя закрыть этот вопрос. Вот , наприм.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38349852
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрпрошлое дополнил просто во избежания разногласий с Яростный Меч, ведь по сути он тоже прав (говоря что строка - это также объект) :)
Вот тут лучше про такое "забыть"...

Поскольку со строкой прокатит такое

Код: javascript
1.
2.
3.
var a='test';
var b='test';
alert(a==b);


А с "настоящим" объектом - нет.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350025
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaПрограмёрпрошлое дополнил просто во избежания разногласий с Яростный Меч, ведь по сути он тоже прав (говоря что строка - это также объект) :)
Вот тут лучше про такое "забыть"...

Поскольку со строкой прокатит такое

Код: javascript
1.
2.
3.
var a='test';
var b='test';
alert(a==b);


А с "настоящим" объектом - нет.

Это да. Но теперь не даёт покоя другое. почему всё же str[1]="a" не производит никаких изменений, но при этом не выдаёт ошибок. Ведь любой, кто придёт из того же паскаля (делфи) как и я, будет думать что код рабочий, даже не подозревая, что данная инструкция не выполняет вообще ничего. Так же не должно быть: или интерпретатор делает то, о чём его просят, или же он сообщает что не может сделать того, о чём попросили... А тут он ничего ни делает и никак об этом не осведомляет программиста.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350097
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо теперь не даёт покоя другое. почему всё же str[1]="a" не производит никаких изменений
Потому как неможет...

Програмёрно при этом не выдаёт ошибок
А вот это конечно зря...
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350107
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрно при этом не выдаёт ошибок
Потому как таки "массив".

Код: javascript
1.
2.
3.
4.
5.
6.
var a='test';
a[1]='X';
a['tmp']='E';
alert(a[1]);
alert(a[2]);
alert(a.tmp);
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350141
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa
Код: javascript
1.
2.
3.
a['tmp']='E';
...
alert(a.tmp);

кстати, в алерте выскочит undefined
Подробности тут
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350183
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350198
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечkrvsa
Код: javascript
1.
2.
3.
a['tmp']='E';
...
alert(a.tmp);

кстати, в алерте выскочит undefined
Подробности тут

ссылка полезная, сенкс...
Но это сколько, простите, надо было выкурить, что бы такое сделать?
То есть, a[1] = "X" создаёт объект-обёртку для строки a, и в свойство ['1'] этого объекта заносит значение "X". А по окончанию данного действия (присваивания данного свойства) удаляет изменённый объект и таким образом оставляет строку без изменений.
Теперь стало понятно почему так... Но новый вопрос... ЗАЧЕМ??!!!
Вообще зачем примитивы оборачивать в объекты (причём скрыто)? Может у разрабов реально была причина на то... Тогда было бы очень интересно узнать для чего. Буду очень благодарен, если кто ссылочку кинет или расскажет.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350210
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечв алерте выскочит undefined
Да.
Потому как не объект. Т.е. не
Код: javascript
1.
new Object();
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350227
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрНо новый вопрос... ЗАЧЕМ??!!!
Дабы работали простые операции сравнения и равенства...

ПрограмёрВообще зачем примитивы оборачивать в объекты (причём скрыто)?
Дабы перевести их в разряд примитивов... Потому как ссылка это "первообразная единица". Т.е. то, с чего все начинается...
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350246
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечkrvsa
Код: javascript
1.
2.
3.
a['tmp']='E';
...
alert(a.tmp);

кстати, в алерте выскочит undefined
Подробности тут

Вот что снова остаётся необъяснимым:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
var a=new String('test');
a[8]='X';
a[1]='f';
alert(a[8]);
alert(a[1]);
alert(a[2]);
alert(a);



на выходе:
"X"
"e"
"s"
"test"

Получается если индекс в строке присутствует, то отдаётся именно символ строки, но пишется в сам объект (строка неизменна остаётся).
Мне видимо не понять Зачем такую неоднозначность вводить?
Почему не сделать нормально (если не ошибаюсь в java такое видел... не уверен, может какой C#, давно было): строка - это строка. ПРИМИТИВ. А есть объект String (стандартный, неизменяемый). Этот объект выступает в роли интерфейса для обработки данной строки. Надо что-то в строку превратить, пиши str=String.toString(obj), надо строку в base64 (или типа того) закодировать пиши str = String.base64encode(str). Надо длину посчитать l = String.length(str). И путаницы нету, и работает не хуже (даже может лучше)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350290
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрна выходе:
"X"
"e"
"s"
"test"

Получается если индекс в строке присутствует, то отдаётся именно символ строки, но пишется в сам объект (строка неизменна остаётся).
Мне видимо не понять Зачем такую неоднозначность вводить?расстановка приоритетов.
прежде всего учитывается содержимое строки и тот факт, что она неизменяема.
а уже потом - добавление нового элемента в объект.

ПрограмёрПочему не сделать нормально (если не ошибаюсь в java такое видел... не уверен, может какой C#, давно было): строка - это строка. ПРИМИТИВ. А есть объект String (стандартный, неизменяемый). Этот объект выступает в роли интерфейса для обработки данной строки. Надо что-то в строку превратить, пиши str=String.toString(obj), надо строку в base64 (или типа того) закодировать пиши str = String.base64encode(str). Надо длину посчитать l = String.length(str). И путаницы нету, и работает не хуже (даже может лучше)Общие традиции ООП. Всё что возможно, делается через "точку".
str.base64encode() и т.д.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350297
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрМне видимо не понять Зачем такую неоднозначность вводить?
Просто не делай так.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350348
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечПрограмёрПочему не сделать нормально (если не ошибаюсь в java такое видел... не уверен, может какой C#, давно было): строка - это строка. ПРИМИТИВ. А есть объект String (стандартный, неизменяемый). Этот объект выступает в роли интерфейса для обработки данной строки. Надо что-то в строку превратить, пиши str=String.toString(obj), надо строку в base64 (или типа того) закодировать пиши str = String.base64encode(str). Надо длину посчитать l = String.length(str). И путаницы нету, и работает не хуже (даже может лучше)Общие традиции ООП. Всё что возможно, делается через "точку".
str.base64encode() и т.д.

Не, ну тогда надо определиться с тем, является ли строка объектом или нет. Если строка - это объект, то тогда не может быть никакой передачи по значению (всё должно делаться по ссылки, а для копирования должна использоваться clone, или как там в js делается). Или же это примитив, тогда никакой "через точку" быть не должно, ведь это не объект. Вообще насколько я помню ООП никак не противоречит использованию примитивов. А статические методы как-раз и созданы для организации предложенного. Кстати, если уж так, то у js нету ничего общего с ООП. Так как один из основных принципов ООП - это наследование, а в js наследования нету. В js наследование всего лишь имитируется посредством агрегирования (prototype).

Потому js не является объектно-ориентированным языком. А потому делать str.base64encode() именно из-за принципов ООП неразумно в данном языке.

Вот так :)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350406
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПрограмёрКстати, если уж так, то у js нету ничего общего с ООП. Так как один из основных принципов ООП - это наследование, а в js наследования нету. В js наследование всего лишь имитируется посредством агрегирования (prototype).спорное утверждение.
если я правильно наследую один класс от другого, то запросто использую методы базового класса (при этом могу легко переопределить их в дочернем классе).

а насчет имитации - так везде имитируется. Просто в JS это все явно, на поверхности, а в других языках скрыто внутри компилятора/интерпретатора. И по крайней мере для позднего связывания (а другого в js нет) механизмы везде примерно одинаковы.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350544
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сведения устаревшие. Поск конкат строк в цикле самая "нативная" для больш программистов, все ведущие движки серьезно над ней поработали.
Прим год назад спец проводили исслед (сбор инфи и некот тесты), чтобы для себя закрыть этот вопрос. Вот , наприм.
ну круто, что :)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350763
зыСведения устаревшие. Поск конкат строк в цикле самая "нативная" для больш программистов, все ведущие движки серьезно над ней поработали.
Прим год назад спец проводили исслед (сбор инфи и некот тесты), чтобы для себя закрыть этот вопрос. Вот , наприм.
ну круто, что :)В основном тормоза набл если рендерят в цикле - браузеру башню сносит. Но если целевой контейнер скрыть, склеить в цикле строку, потом выплюнуть в него и снова показать - быстродействие вполне адекватное. Опять же - тормоза проявл не из-за большого кол-ва строк, а из-за навешаных (как правило) всяких обработчиков и т.п. Мож проверить - вывести на страницу 100 тыс строк простого текста и 10 тыс с навешенным на клик ф-цией (напр если jQuery).
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350781
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробегаллоВ основном тормоза набл если рендерят в цикле - браузеру башню сносит. Но если целевой контейнер скрыть, склеить в цикле строку, потом выплюнуть в него и снова показать - быстродействие вполне адекватное.на это случай documentFragment имеется (ясли я правильно понял о чем речь)
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38350812
Яростный МечпробегаллоВ основном тормоза набл если рендерят в цикле - браузеру башню сносит. Но если целевой контейнер скрыть, склеить в цикле строку, потом выплюнуть в него и снова показать - быстродействие вполне адекватное.на это случай documentFragment имеется (ясли я правильно понял о чем речь)Я повторюсь - примерно год назад дал орлам задание исследовать вопрос рендеринга на клиенте. По совокупности про ет контра решили не париться - конкатенция вполне устраивала по быстродействию. А с documentFragment тоже было не все шоколадно. Сейчас уже не помню.
Просто был довольно вкусный проект с одним минусом - заказчик был козёл. И одно из непременных условий был вывод грида на неск тыс записей.Но я взял его: ладно, думаю - добуду, чай глухарь, а не бизон как-н решим проблему.
Ну и конечно, на этом месте произошла заминка - ему как на десктопе подавай. Но, в документации, возле его хотелок (за подписью САМОГО!) были примечания как раз по быстродействию - попа прикрыта была как надо. Ну поприпирались немножко - моя победила :).
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38351157
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробегаллоНо, в документации
В документации чего?
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38352258
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробегаллоПросто был довольно вкусный проект с одним минусом - заказчик был козёл. И одно из непременных условий был вывод грида на неск тыс записей.Но я взял его: ладно, думаю - добуду, чай глухарь, а не бизон как-н решим проблему.
Ну и конечно, на этом месте произошла заминка - ему как на десктопе подавай. Но, в документации, возле его хотелок (за подписью САМОГО!) были примечания как раз по быстродействию - попа прикрыта была как надо. Ну поприпирались немножко - моя победила :).

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

фрагменты кстати как раз хорошо подходят для "дорисовки" грида, иначе иерархия быстро бы запутывалась, если бы приходилось "дорисовывать" в контейнеры, которые потом добавлять к документу, либо падала в 0 по производительности, если бы в документ добавлялась каждая строчка в отдельности.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38352409
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыпробегаллоПросто был довольно вкусный проект с одним минусом - заказчик был козёл. И одно из непременных условий был вывод грида на неск тыс записей.Но я взял его: ладно, думаю - добуду, чай глухарь, а не бизон как-н решим проблему.
Ну и конечно, на этом месте произошла заминка - ему как на десктопе подавай. Но, в документации, возле его хотелок (за подписью САМОГО!) были примечания как раз по быстродействию - попа прикрыта была как надо. Ну поприпирались немножко - моя победила :).

похоже "минус" решался не с той стороны, надо было не строки рендерить с максимально возможной скоростью, а рендерить минимально возможно строк. Быстродействие как на десктопе - не фантастика. +1
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38352455
зы,

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

Antonariy,

:)

--
ПС: Разжевываю - спец условие: единоразовый вывод грида на неск тыс строк.
Здесь все такие: не читают что написано, и не зная всех деталей умно рассуждают?
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38352853
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробегаллоПС: Разжевываю - спец условие: единоразовый вывод грида на неск тыс строк.У заказчика монитор высотой несколько десятков метров?

До вас не доходит очевидная вещь: вывести единоразово несколько тысяч строчек на стандартный монитор можно лишь в том случае, если высота каждой строки намного меньше пикселя.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38352897
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Налицо исполнитель, слишком буквально понимающий задание :) единоразово - вполне может означать, что он просто не хотел постраничную переключалку aka пейджинг. Клиента нужно уметь понимать, они не всегда умеют выражать свои мысли на языке программиста.

p.s. что-то слово "единоразово" не узрел в первом сообщении, были условия только "вывести несколько тыщ" и "как на десктопе".
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38353458
Antonariy,

Ну, от тебя не ожидал троллоты - держал за адекватного. Далее дискусмя бессмысленна.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38353477
зыНалицо исполнитель, слишком буквально понимающий задание :) единоразово - вполне может означать, что он просто не хотел постраничную переключалку aka пейджинг. Клиента нужно уметь понимать, они не всегда умеют выражать свои мысли на языке программиста.

p.s. что-то слово "единоразово" не узрел в первом сообщении, были условия только "вывести несколько тыщ" и "как на десктопе". Ошибочный вывод.
Налицо - идеология фрилансера. Что ты можешь знать о проблемах ПиЭма? На основании чего принимаются решения? Через меня таких как ты прошло - не счесть. Все дискуссии понты прекращаются, когда потери возмещаются за счет зарплаты рьяно выступающего.
Решение о выборе технологии принимается на основании бюджета, сроков и рисков.

Ребят - не трудитесь отвечать - у меня свободное время заканчивается. В ближайшую неделю смотреть некогда. Бывайте!
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38353580
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Как на десктопе" тоже отображается очень ограниченное количество строк - несколько десятков. Вменяемые гриды не занимаются рисованием элементов за пределом видимости, за счет этого достигается быстродействие. Тот же самый подход применим в HTML. Незачем загромождать Dom кучей элементов, которых не видно, достаточно имитировать скроллом их наличие.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38353709
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробегаллоНалицо - идеология фрилансера. Что ты можешь знать о проблемах ПиЭма? На основании чего принимаются решения? Через меня таких как ты прошло - не счесть. Все дискуссии понты прекращаются, когда потери возмещаются за счет зарплаты рьяно выступающего.
Решение о выборе технологии принимается на основании бюджета, сроков и рисков.

Ребят - не трудитесь отвечать - у меня свободное время заканчивается. В ближайшую неделю смотреть некогда. Бывайте!
Похоже понты с грохотом отгрузились в штаны и уволокли пробегалло в тяжелые трудовые будни, где нужно сражаться с безмозглыми ПМ-мами, и неадекватность любой задачи демонстрировать неработающим глупокодом и уймой потраченного времени. Бывает.

p.s. кстати странно задавать такие вопросы незнакомому человеку и делать никого не интересующие выводы
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38355000
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy"Как на десктопе" тоже отображается очень ограниченное количество строк - несколько десятков. Вменяемые гриды не занимаются рисованием элементов за пределом видимости, за счет этого достигается быстродействие. Тот же самый подход применим в HTML. Незачем загромождать Dom кучей элементов, которых не видно, достаточно имитировать скроллом их наличие.
Вы имеете в виду грид с перелестыванием страниц?
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38355150
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyВы имеете в виду грид с перелестыванием страниц?
потрудитесь найти ссылку на пример в этом сообщении 14653366
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38355218
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыGustlyВы имеете в виду грид с перелестыванием страниц?
потрудитесь найти ссылку на пример в этом сообщении 14653366 Ну, это ему придется очень сильно потрудиться :)

Она в предыдущем: 14651669
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38357140
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

Очень красиво сделано, но там нету примеров, а файл Ext JS 4.2 содержит 25к строк кода после разбивки, есть какие-нибудь примеры, чтобы у себя тоже так сделать? А если более точно в APEXе, селектом.
...
Рейтинг: 0 / 0
Javascript. Ссылка на экземпляр.
    #38357237
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Примеров нет, но идея, как это делается, достаточно очевидна.
Код: html
1.
2.
3.
<div id="scroller" style="overflow:auto">
    <div id="content" style="position:relative"></div>
</div>


Берется первая строчка первого набора данных, вставляется в content, узнается ее высота. Высота умножается на кол-во записей всего набора и полученное значение прописывается в height дива content. Вот мы и получили скроллер, имитирующий высоту всего набора данных. Как на десктопе :) В onscroll берется текущая высота скролла, по ней вычисляется страница данных, вытаскивается с сервера и вставляется в content с position:absolute и top, вычисляемым относительно высоты скролла.

Это в общем и целом. Еще нужно предусмотреть очистку content от далеко уехавших и невидимых записей и вычислять направление скролла, чтобы вытаскивать предыдущую или следующую страницу. Если открыть консоль сети в FF, то видно, как грид ExtJS из того примера дергает сервер, вытаскивая при смене направления сразу по 20 страниц.
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Javascript. Ссылка на экземпляр.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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