Lib является единицей кода, который связывается в Вашем исполняемом файле приложения.
А dll является автономной единицей исполняемого кода. Это загружается в процессе только, когда вызов превращен в тот код. dll может использоваться несколькими приложениями и загружаться в нескольких процессах, все еще имея только одну копию кода жесткого диска.
профессионалы Dll : может привыкнуть к коду повторного использования/доли между несколькими продуктами; загрузка в памяти процесса по требованию и может быть разгружена если не необходимая; может быть обновлен независимо от остальной части программы.
недостатки Dll : влияние производительности загрузки dll и перебазирования кода; проблемы управления версиями ("dll ад")
профессионалы Lib : никакое влияние производительности как код всегда не загружается в процессе и не перебазирующееся; никакие проблемы управления версиями.
недостатки Lib : исполняемый файл/процесс "чрезмерно увеличивается в размерах" - весь код находится в Вашем исполняемом файле и загружается после процесса, запускаются; никакое повторное использование/совместное использование - каждый продукт имеет свою собственную копию кода.
На http://ajaxian.com/archives/freeze-pane-functionality есть рабочий пример, который легко скопировать. Обязательно обратите внимание на комментарии - многие пользователи внесли полезные предложения по улучшению скрипта.
По просьбе @Nirk, прямая ссылка на активную демонстрацию находится на http://www.disconova.com /open_source/files/freezepanes.htm[1141677ght.
Используйте такую базовую структуру-
table
row
column (blank)
column
table (1 row high, column headers)
row
column
table (1 column wide, row headers)
column
div (fixed height & width, overflow auto)
table (actual data)
Установите фиксированный макет таблицы и явно укажите ширину столбцов в пикселях. У вас должен получиться такой же эффект.
Если вы используете jQuery есть много плагинов для столов с фиксированной головкой.
текст [0]
не работает, если текст
является пустой строкой:
IronPython 2.6 Alpha (2.6.0.1) on .NET 4.0.20506.1
Type "help", "copyright", "credits" or "license" for more information.
>>> text = ""
>>> print(text.startswith("a"))
False
>>> print(text[0]=='a')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: index out of range: 0
РЕДАКТИРОВАТЬ: Вы говорите, что «знаете» этот текст
не пусто ... насколько вы уверены в этом, и что бы вы хотели, если он на самом деле пуст? Если ошибка уместна (например, это означает ошибку в вашем коде), это может побудить использовать text [0] == 'a'
.
Другие вопросы:
Насколько вы обеспокоены о производительности этого? Если это критично для производительности, протестируйте его на вашей конкретной среде выполнения Python . Я не был бы полностью удивлен, обнаружив, что (скажем) одна форма была быстрее на IronPython, а другая - на CPython.
table layout-fixed
может помочь в этом).
Таблицы затем помещаются в некоторые блоки div; левый и верхний блоки имеют (как предложено выше) высоту и ширину и overflow-auto
в своих CSS.
Затем вы подключаете некоторый javascript, чтобы синхронизировать прокрутку левого / верхнего div с внутренним one ...
Насколько я помню, было изрядно «прокляни и попробуй еще раз», но это можно сделать с минимальными js.
hth