VACUUM FULL ANALYZE

VACUUM высвобождает пространство, занимаемое «мёртвыми» кортежами. При обычных операциях Postgres Pro кортежи, удалённые или устаревшие в результате обновления, физически не удаляются из таблицы; они сохраняются в ней, пока не будет выполнена команда VACUUM. Таким образом, периодически необходимо выполнять VACUUM, особенно для часто изменяемых таблиц.

Без параметра команда VACUUM обрабатывает все таблицы в текущей базе данных, которые может очистить текущий пользователь. Если в параметре передаётся имя таблицы, VACUUM обрабатывает только эту таблицу.

VACUUM ANALYZE выполняет очистку (VACUUM), а затем анализ (ANALYZE) всех указанных таблиц. Это удобная комбинация для регулярного обслуживания БД. За дополнительной информацией об анализе обратитесь к описанию ANALYZE.

Простая команда VACUUM (без FULL) только высвобождает пространство и делает его доступным для повторного использования. Эта форма команды может работать параллельно с обычными операциями чтения и записи таблицы, так она не требует исключительной блокировки. Однако освобождённое место не возвращается операционной системе (в большинстве случаев); оно просто остаётся доступным для размещения данных этой же таблицы. VACUUM FULL переписывает всё содержимое таблицы в новый файл на диске, не содержащий ничего лишнего, что позволяет возвратить неиспользованное пространство операционной системе. Эта форма работает намного медленнее и запрашивает исключительную блокировку для каждой обрабатываемой таблицы.

Когда список параметров заключается в скобки, параметры могут быть записаны в любом порядке. Без скобок параметры должны указываться именно в том порядке, который показан выше. Синтаксис со скобками появился в PostgreSQL 9.0; вариант записи без скобок считается устаревшим.

Angular: Server Side Rendering

Данная возможность позволяет производить отрисовку страниц на стороне сервера. Подробнее об этом написано здесь:

Вывод

  • запуск производиться не через команду ng server, а через npm run serve:ssr. Используется сервер node.js с express модулем
  • после любых изменений в компоненте требуется выполнить команду npm run build:ssr (пересобрать проект) и только после этого запускать команду npm run serve:ssr
video
play-sharp-fill

Angular 4 Jump start — краткий пересказ

Заметки:

// использование переменных в html
let i = index
// равнозначно
index as i

tslint.json — предназначен для редактирование (настройки) оформления проекта. В файле angular-cli.json указываются настройки CLI

Файл с расширением *.spec предназначен для тестирования.

// это и есть мета-данные
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})

Для подмены префикса у компонентов, например в app-root, заменить app на название фирмы, нужно перейти в файл .angular-cli.json и найти свойство префикс и подменить его

Читать далее «Angular 4 Jump start — краткий пересказ»

Angular сервисы

Сервисы не имеют представлений

ng g service [имя сервиса]

Примечание!!! После генерации сервиса обновление app.component.ts не происходит.

Создание сервиса

И поэтому нам самим вручную нужно прописать ссылку на сервис в файле app.module.ts

Читать далее «Angular сервисы»

Роутинг приложения. Первое приложение Angular

Чтобы объяснить как это работает проще перейти сразу к примера.

Для начала при помощи команды ng generate создадим пару страниц:

  • home
  • about
  • news
  • price
  • notfound
ng generate component [имя страницы]
Читать далее «Роутинг приложения. Первое приложение Angular»

NgStyle,NgClass. Динамическая стилизация компонентов

ngClass — позволяет определить набор классов которые применяются к элементу

<div [ngClass]="{class1: true}"> (1)
<h1>Hello World!!!</h1>
<p [ngClass]="{class2: true}">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Magnam cupiditate
voluptates sed voluptate a dolores
ipsa dignissimos in nam cumque consequuntur, iste dolore? Voluptatum reiciendis doloremque eligendi
dignissimos, iusto deleniti.</p>
</div>
.class1{
color: red;
}

.class2{
color: yellow;
}

Применение стилей для элемента осуществляется при помощи директивы ngClass, которой присваивается объект в виде строки «{class1:true}». Где class1 — имя класса, а параметр true — нужно применять класс или нет.

Читать далее «NgStyle,NgClass. Динамическая стилизация компонентов»

Двусторонняя привязка данных — ngModel

В app.module.ts импортируем модуль @angular/forms (1) В imports прописываем добавленный модуль (2)

...
import { NgModule } from '@angular/core';

import { FormsModule } from '@angular/forms'; (1)
...

@NgModule({
declarations: [
AppComponent,
DateComponent
],
imports: [
...,
FormsModule (2)
],
providers: [],
bootstrap: [AppComponent]
})
...
Читать далее «Двусторонняя привязка данных — ngModel»

Click. Отслеживание событий

<button (click)="myEvent($event)">(1)
Event
</button>
export class DateComponent implements OnInit {
constructor() {

}

myEvent(event) { // (2)
console.log(event);
}
...

В шаблоне для элемента button добавляем событие click (1), которое при помощи одностороннего бандинга, может обрабатываться в классе компонента (2).

Читать далее «Click. Отслеживание событий»

Директива ngif

Предназначен для обработки условий. На примере ниже показано применение для установки видимости компонента.

...
loggedIn: boolean = true; // (1)
...
<div *ngIf="loggedIn"> (2)
<p>Logged in.</p>
</div>

Объявляем переменную в классе компонента (1). В разметке объявляем директиву ngIf присваиваем ей значение переменной (2).

Как и любой логический оператор, ngIf может использовать отрицание (3).

<div *ngIf="!loggedIn"> (3)
<p>Logged in.</p>
</div>
Читать далее «Директива ngif»