Заголовок таблицы остается фиксированным сверху, когда пользователь прокручивает его вне поля зрения с помощью jQuery

ОБНОВЛЕНИЕ ПАНЕЛЕЙ ДЛЯ 2016 (pg9.5 +)

И используя тесты «чистого SQL» (без какого-либо внешнего скрипта)

  1. использовать любой string_generator с UTF8
  2. основные этапы: 2.1. ВСТАВКА 2.2. SELECT сравнение и подсчет

CREATE FUNCTION string_generator(int DEFAULT 20,int DEFAULT 10) RETURNS text AS $f$
  SELECT array_to_string( array_agg(
    substring(md5(random()::text),1,$1)||chr( 9824 + (random()*10)::int )
  ), ' ' ) as s
  FROM generate_series(1, $2) i(x);
$f$ LANGUAGE SQL IMMUTABLE;

Подготовить специальный тест (примеры)

DROP TABLE IF EXISTS test;
-- CREATE TABLE test ( f varchar(500));
-- CREATE TABLE test ( f text); 
CREATE TABLE test ( f text  CHECK(char_length(f)<=500) );

Выполнить базовый тест:

INSERT INTO test  
   SELECT string_generator(20+(random()*(i%11))::int)
   FROM generate_series(1, 99000) t(i);

И другие тесты,

CREATE INDEX q on test (f);

SELECT count(*) FROM (
  SELECT substring(f,1,1) || f FROM test WHERE f<'a0' ORDER BY 1 LIMIT 80000
) t;

... И используйте EXPLAIN ANALYZE.

UPDATED AGAIN 2018 (pg10)

мало редактировать, чтобы добавить результаты 2018 года и укрепить рекомендации.


Результаты в 2016 и 2018 годах

Мои результаты после средних значений на многих машинах и во многих тестах: все равно (статистически меньше стандартного отклонения).

Рекомендация

  • Использовать тип данных text избегайте старых varchar(x), потому что иногда это не стандарт, например в CREATE FUNCTION положениях varchar(x)varchar(y).
  • выразить пределы (с той же varchar производительность!) с помощью предложения CHECK в CREATE TABLE, например. CHECK(char_length(x)<=10). При незначительной потере производительности в INSERT / UPDATE вы также можете управлять диапазонами и строковой структурой, например. CHECK(char_length(x)>5 AND char_length(x)<=20 AND x LIKE 'Hello%')
136
задан Sam Dufel 23 May 2018 в 23:59
поделиться

1 ответ

Я нашел простое решение, не используя JQuery и с помощью CSS только.

необходимо поместить фиксированное содержание в теги и добавить CSS

table th {
    position:sticky;
    top:0;
    z-index:1;
    border-top:0;
    background: #ededed;
}

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

0
ответ дан 23 November 2019 в 23:38
поделиться
Другие вопросы по тегам:

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