Как страница “Is offline for maintenance” реализована?

Это должно добиться цели:

function isScrolledIntoView(elem)
{
    var docViewTop = $(window).scrollTop();
    var docViewBottom = docViewTop + $(window).height();

    var elemTop = $(elem).offset().top;
    var elemBottom = elemTop + $(elem).height();

    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

Простая Служебная функция Это позволит Вам называть служебную функцию, которая принимает элемент, который Вы ищете и если Вы хотите, чтобы элемент был полностью в поле зрения или частично.

function Utils() {

}

Utils.prototype = {
    constructor: Utils,
    isElementInView: function (element, fullyInView) {
        var pageTop = $(window).scrollTop();
        var pageBottom = pageTop + $(window).height();
        var elementTop = $(element).offset().top;
        var elementBottom = elementTop + $(element).height();

        if (fullyInView === true) {
            return ((pageTop < elementTop) && (pageBottom > elementBottom));
        } else {
            return ((elementTop <= pageBottom) && (elementBottom >= pageTop));
        }
    }
};

var Utils = new Utils();

Использование

var isElementInView = Utils.isElementInView($('#flyout-left-container'), false);

if (isElementInView) {
    console.log('in view');
} else {
    console.log('out of view');
}
8
задан sharptooth 18 August 2009 в 20:15
поделиться

4 ответа

В asp.net есть уловка, при которой вы помещаете файл с именем

App_Offline.htm

Все запросы будут поступать на него, пока страница не будет удалена.

Для других сред вы часто можете просто изменить, куда указывает сервер, или другой подобный план.

- Править

Независимый от сервера подход достигается за счет чего-то вроде балансировки нагрузки.

Под капотом вы можете отправлять запросы на заданный внутренний сервер . Затем вы можете решить направлять все запросы на свой сервер «a», который вы настраиваете для отображения страницы «время простоя». Затем вы вносите изменения на сервер «b», подтверждаете его успешность и указываете все запросы на «b». Затем вы обновляете "a" и позволяете запросам идти к обоим.

18
ответ дан 3 November 2019 в 12:50
поделиться

В ASP.NET (и ASP.NET MVC как Stackoverflow) это обеспечивается функцией app_offline.htm . Это работает просто путем перенаправления всех запросов ASP.NET в файл app_offline.htm.

11
ответ дан 3 November 2019 в 12:50
поделиться

В apache вы можете использовать файл .htacces с этим содержимым.

order deny,allow
allow from 192.168.1.151
deny from all

ErrorDocument 403 404.html
ErrorDocument 404 404.html
ErrorDocument 500 404.html

Это запретит доступ всем, кроме одного IP-адреса, и предоставит статический файл 404.html.

Это работает в в случае, если у вас есть только один сервер без балансировки нагрузки и прочего. Однако должно работать и для балансировки нагрузки.

5
ответ дан 3 November 2019 в 12:50
поделиться

Обратный прокси-сервер apache можно настроить на отправку этого ответа - если он используется как часть этой архитектуры.

2
ответ дан 3 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

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