Каков наилучший способ получить данные в SlickGrid, который работает в браузере .NET на моно? - PullRequest
0 голосов
/ 12 февраля 2011

Элемент управления браузера не извлекает данные из URL - он поступает со стороны .NET приложения.

Я продолжаю сталкиваться с проблемами стабильности где-то в цепочке mono-libgluezilla-mozilla.

Изначально я пытался сделать вызов JavaScript (используя browser.Document.InvokeScript) для своей собственной функции, которая будет выполнять обновление этой ячейки в SlickGrid.Я подумал, что большое количество вызовов .NET к сценариям вносит свой вклад в проблему стабильности, поэтому я изменил код таким образом, чтобы целую строку можно было обновить одним вызовом сценария (передавая строку JSON).Но проблемы со стабильностью остаются.Кажется, что я не могу делать вызовы сценариев в то же время, как я щелкаю по SlickGrid, или все ошибки сегмента приложения с чем-то вроде этого:

    mono() [0x48b231]
    mono() [0x4d48af]
    /lib64/libpthread.so.0(+0xf2e0) [0x7feeb2af32e0]
    /usr/lib64/libgluezilla.so(+0x108cf) [0x7feea96b58cf]
    /usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x1f3) [0x7feeb314ea93]
    /usr/lib64/libglib-2.0.so.0(+0x41270) [0x7feeb314f270]
    /usr/lib64/libglib-2.0.so.0(g_main_context_iteration+0x70) [0x7feeb314f510]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a5e3) [0x7feea35215e3]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a689) [0x7feea3521689]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xd747c0) [0x7feea363b7c0]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xd494a1) [0x7feea36104a1]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc5a596) [0x7feea3521596]
    /usr/lib64/xulrunner-1.9.2.6/libxul.so(+0xc485d6) [0x7feea350f5d6]
    /usr/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x1f3) [0x7feeb314ea93]
    /usr/lib64/libglib-2.0.so.0(+0x41270) [0x7feeb314f270]
    /usr/lib64/libglib-2.0.so.0(g_main_loop_run+0x195) [0x7feeb314f8f5]
    /usr/lib64/libgtk-x11-2.0.so.0(gtk_main+0xa7) [0x7feeada3e777]
    /usr/lib64/libgluezilla.so(_Z11gtk_startupPv+0x39) [0x7feea96b7549]
    /usr/lib64/libglib-2.0.so.0(+0x67e86) [0x7feeb3175e86]
    /lib64/libpthread.so.0(+0x6a4f) [0x7feeb2aeaa4f]
    /lib64/libc.so.6(clone+0x6d) [0x7feeb25fd82d]

Я даже пытался регулировать вызовы сценария(10 мс на звонок).По-прежнему происходит сбой.

Эта проблема уменьшается, когда в SlickGrid меньше столбцов, но все еще возникает с 9 столбцами.

В моей таблице 150 строк.

Есть ли другой способ получить данные из .NET в JavaScript?Если это так, возможно, моно + libgluezilla + SlickGrid trio справится с этим лучше.

1 Ответ

0 голосов
/ 21 февраля 2011

Хитрость заключается в том, чтобы ограничить вызовы сценария чем-то очень медленным, например, одним вызовом на 100 мс.Для того, чтобы идти так медленно, я должен упаковать все содержимое сетки в строку JSON и обновить все сразу.Это все еще иногда дает сбой, но это лучшее решение, которое я мог придумать.Отказ от моно сейчас.

...