Действительно ли JavaScript готов к визуализации больших наборов данных?

Проблема в том, что вы поместили аннотацию @Id в неправильное поле в Student:

@Id // This is where you put it
@Column(name="m2_des")
private String classId;

Поскольку classId (m2_des) не уникальна, Hibernate будет только верните первую сущность, с которой он сталкивается, с данным ID, в вашем случае:

  • stu_1 (потому что это первая сущность с cl_1)
  • stu_3 (потому что это первый с cl_2)

Чтобы решить эту проблему, вы должны поместить поле @Id в поле stuId:

public class Student implements Serializable {

    @Id // This field is unique
    @Column(name="m2_id")
    private String stuId;


    @Column(name="m2_des")
    private String classId;

    // ...
}
12
задан vzwick 21 October 2011 в 11:34
поделиться

3 ответа

JavaScript, вероятно, готов к нему, так как сам JavaScript добрался, чтобы быть довольно быстрым. По моему опыту, браузеры обычно не готовы обработать очень большие структуры DOM. Самое меньшее можно ожидать проводить много времени, пытаясь узнать, почему вещи являются медленными. Вы также обнаружите, что много "стандартных" библиотек JavaScript (прототип/jQuery приходят на ум) не подходит для работы с "чрезмерно" большими структурами DOM.

Будьте готовы узнать, что данная операция является медленной на всех браузерах, но в конце это оказывается по 3-4 различным причинам на различных браузерах. Это основано на опыте от работы с DOMS умеренно увеличенного размера. В то время как, конечно, возможно, это собирается стоить изрядного объема работы для получения достойного результата.

9
ответ дан 26 October 2019 в 10:46
поделиться

Действительно ли JavaScript готов к визуализации больших наборов данных?

Да - язык к точке, где он легко, в правильной среде, обрабатывает значительный recordsets и управляет, визуализирует, и т.д. их. Сам язык прекрасен.

Действительно ли это - глупая идея?

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

Действительно ли браузер готов к этому виду загрузки?

Некоторые могли бы быть - зависит от того, что обработка и действия Вы на самом деле берете. С Chrome с помощью быстрого механизма JavaScript и все большего количества людей, в большой степени полагающихся на него, зажжена война скорости JavaScript. Я думаю, что это - совершенно действительный сценарий использования.

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

- Adam

4
ответ дан 26 October 2019 в 10:46
поделиться

Я настоятельно рекомендую Адаму выполнить некоторые тесты и оптимизацию. Недавно я проделал некоторую работу по построению больших наборов данных с помощью Flot и испытал менее чем приемлемую производительность с Internet Explorer (например, весь браузер зависал на ~ 20 с на моем компьютере разработчика при построении диаграмм).

Flot использует холст элемент для построения графиков, который поддерживается только в Internet Explorer 9+. Flot обеспечивает поддержку более старых версий Internet Explorer, используя библиотеку ExplorerCanvas . Эта библиотека использует VML , рисуя графику, манипулируя элементами VML через DOM.

Использование профилировщика сценариев Internet Explorer 8 Я обнаружил, что большую часть времени, затрачиваемого на рендеринг графика, было потрачено на вызов нативного метода insertAdjacentHTML для создания элементов VML. Поскольку ничего нельзя было сделать для повышения производительности вызовов собственных методов, я вместо этого работал над уменьшением количества отображаемых точек данных (в свою очередь, уменьшением элементов VML, созданных в DOM), чтобы получить приемлемую производительность.

вам не нужна или не заботится о поддержке старых версий Internet Explorer, когда вы обнаружите, что Flot / Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, будьте готовы столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

Поскольку ничего нельзя было сделать для повышения производительности вызовов собственных методов, я вместо этого работал над уменьшением количества отображаемых точек данных (в свою очередь, уменьшением элементов VML, созданных в DOM), чтобы получить приемлемую производительность.

вам не нужна или не заботится о поддержке старых версий Internet Explorer, когда вы обнаружите, что Flot / Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, будьте готовы столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

Поскольку ничего нельзя было сделать для повышения производительности вызовов собственных методов, я вместо этого работал над уменьшением количества отображаемых точек данных (в свою очередь, уменьшением элементов VML, созданных в DOM), чтобы получить приемлемую производительность.

вам не нужна или не заботится о поддержке старых версий Internet Explorer, когда вы обнаружите, что Flot / Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, будьте готовы столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

вам не нужна поддержка старых версий Internet Explorer, если вы обнаружите, что Flot / Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, будьте готовы столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

вам не нужна поддержка старых версий Internet Explorer, если вы обнаружите, что Flot / Flotr вполне способен обрабатывать большие наборы данных. Но если вам нужно поддерживать эти версии, будьте готовы столкнуться с проблемами производительности при составлении диаграмм больших наборов данных.

6
ответ дан 26 October 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: