@maxisam спасибо за ngx-window-token . Я делал что-то подобное, но переключился на твое. Это моя служба для прослушивания событий изменения размера окна и уведомления абонентов.
import { Inject, Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import { WINDOW } from 'ngx-window-token';
export interface WindowSize {
readonly width: number;
readonly height: number;
}
@Injectable()
export class WindowSizeService {
constructor( @Inject(WINDOW) private _window: any ) {
Observable.fromEvent(_window, 'resize')
.auditTime(100)
.map(event => {width: event['currentTarget'].innerWidth, height: event['currentTarget'].innerHeight})
.subscribe((windowSize) => {
this.windowSizeChanged$.next(windowSize);
});
}
readonly windowSizeChanged$ = new BehaviorSubject({width: this._window.innerWidth, height: this._window.innerHeight});
}
Короткая и сладкая и работает как очарование.
Я полагаю, вы используете пакет Intervention Image. Однако нет необходимости помещать все изображения в этот пакет. Если вы это сделаете, пакет обработает изображение, и это займет много времени.
Если вы просто хотите вернуть изображение, вы можете сделать это с помощью встроенного файла ответа .
return response()->file('images/test.jpg');
Это загрузит файл прямо из файловой системы и будет намного быстрее.
Очень сложно улучшить время отклика. Это зависит от различных причин, таких как сервер, скорость интернета, местоположение, размер ваших изображений и т. Д.
Для таких случаев такие сервисы, как imagix ( https://www.imgix.com/ ), и это хорошо сработало для нас. Это намного дешевле, чем настройка других параметров для улучшения времени отклика.