Реагирующая загрузка не извлекается из кеша

Я использую реагирующую загрузку, а также предварительное кэширование. Кажется, что они оба прекрасно работают сами по себе, но я ожидал, что реагирующая загрузка будет смотреть на кэш-память для файла перед выполнением сетевого запроса. Это не так.

Установка тривиальна. В моем заголовке у меня есть кнопки входа в систему / регистрации, которые после нажатия должны вызывать, через реагирующую загрузку, выборку соответствующих файлов (ранее созданных с разделением кода). Нажатие запускает запрос файлов, как и ожидалось, но не из кэша.

Я проверил, что указанные файлы находятся в кеш-хранилище, прежде чем нажать на кнопку "Войти / Зарегистрироваться". Но на инструментах разработчика я вижу файлы, извлекаемые из сети, а не кеш-память.

Это, конечно, большая трата ширины полосы.

Та же проблема относится и к маршрутам, т. Е. Реагирующая загрузка также извлекает из сети файлы для последующих маршрутов, даже если файлы также доступны в кеше.

Не уверен, что код для публикации здесь, как сказал код как таковой, кажется, работает нормально. Я не смог найти место для создания проблемы в реактивно-загружаемом репозитории git.

В любом случае здесь появляется некоторый код:

Компонент заголовка:

import React from 'react';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import { withRouter } from 'react-router-dom';
import Loadable from 'react-loadable';
import Status from './components/status';
import Nav from './components/nav';
import SessionHandler from '../session_handler/';
import { actionGetGeoInfo, actionUrlToRedirectOnLoginRegister } from './actions/';
import PropTypes from 'prop-types';
import { Loading, DELAY, TIMEOUT } from '../../../tools/functions';


const Login = Loadable({
    loader: () => import('../login/'),
    loading: Loading,
    delay: DELAY,
    timeout: TIMEOUT
});

const Register = Loadable({
    loader: () => import('../register/'),
    loading: Loading,
    delay: 200,
    timeout: TIMEOUT
});

.....

render() {

.......
    const activeDialog = () => {
        if (this.state.activeLogin) {
            return (
                <Login 
                    active={this.state.activeLogin} 
                    handleClick={this.handleLoginRegisterClick} 
                    handleClickPasswordReset={this.togglePasswordResetRequest} 
                    toggleDialog={this.toggleLoginRegisterDialogs} 
                />
            )
        } else if (this.state.activeRegister) {
            return (
                <Register 
                    active={this.state.activeRegister} 
                    handleClick={this.handleLoginRegisterClick}
                    toggleDialog={this.toggleLoginRegisterDialogs} 
                />
            )
        } else if (this.state.activePasswordResetRequest) {
            return (
                <PasswordResetRequest 
                    active={this.state.activePasswordResetRequest} 
                    hidePasswordResetRequest={this.togglePasswordResetRequest} 
                />
            )
        }
        return null;
    }

    return (
        <header>
            <div className="header_top flex">
                <div className="branding"></div>
                <div className="header_spacer"></div>
                <Status handleClick={this.handleLoginRegisterClick}/>
            </div>
            <Nav />
            <div className="auth">
                {activeDialog()}
                <SessionHandler location={location}/>
            </div>
            {showAdForm()}
        </header>       
    );
}

0 ответов

Другие вопросы по тегам