如果禁用JavaScript和Cookie,防止访问Django站点的好方法是什么?
我正在使用响应式web设计和RESS构建Django网站。如果用户的浏览器中禁用了JavaScript和/或Cookie,我想阻止用户访问该站点。下面显示的代码是实现这一点的好方法吗?有什么办法可以改进代码吗?最后,会不会有任何性能上的冲击?我认为服务器会将不必要的代码下载到禁用JS的浏览器中。然而,我认为,在用户访问该站点一次之后,他们就会知道他们需要启用JS才能使用它 我想我更关心的是,如果每次用户访问站点上的任何页面时都会运行此检查,那么是否会有任何明显的延迟。由于该网站将在移动设备上使用,因此速度是一个主要问题 谢谢如果禁用JavaScript和Cookie,防止访问Django站点的好方法是什么?,javascript,django,cookies,django-templates,django-views,Javascript,Django,Cookies,Django Templates,Django Views,我正在使用响应式web设计和RESS构建Django网站。如果用户的浏览器中禁用了JavaScript和/或Cookie,我想阻止用户访问该站点。下面显示的代码是实现这一点的好方法吗?有什么办法可以改进代码吗?最后,会不会有任何性能上的冲击?我认为服务器会将不必要的代码下载到禁用JS的浏览器中。然而,我认为,在用户访问该站点一次之后,他们就会知道他们需要启用JS才能使用它 我想我更关心的是,如果每次用户访问站点上的任何页面时都会运行此检查,那么是否会有任何明显的延迟。由于该网站将在移动设备上使用
# static/styles.css:
<style type="text/css">
#page-content, #cookie-warning {
display: none;
}
</style>
# templates/base.html
<!DOCTYPE html>
<html>
<head>
<title>RWD/RESS Website</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="/static/styles.css"/>
</head>
<body>
<noscript>WARNING: You must enable JavaScript in your browser in order to use this website.</noscript>
<div id="cookie-warning">
WARNING: You must enable cookies to use this site.
</div>
<div id="page-content">
{% block body_wrapper %} {% endblock %}
</div>
<script type="text/javascript">
// Functions to test capabilities
var javascript_enabled = function () {
// var elem = document.getElementById("page-content");
return true;
};
var cookies_enabled = function() {
var cookieEnabled = (navigator.cookieEnabled) ? true : false;
if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
document.cookie = "test_cookie";
cookieEnabled = (document.cookie.indexOf("test_cookie") != -1) ? true : false;
}
return cookieEnabled;
};
// Function to allow multiple onload event listeners
function addLoadEvent(func) {
var oldOnLoad = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
if (oldOnLoad) {
oldOnLoad();
}
func();
}
}
}
// Add onload events for capability functions.
addLoadEvent(cookies_enabled);
addLoadEvent(javascript_enabled);
// Toggle page content or warning messages.
if (javascript_enabled() === true) {
var pageContentElem = document.getElementById("page-content");
if (cookies_enabled() === true) {
pageContentElem.style.display = "block";
} else {
var cookieWarningElem = document.getElementById("cookie-warning");
cookieWarningElem.style.display = "block";
pageContentElem.style.display = "none";
}
}
</script>
</body>
</html>
# templates/some_page.html
{% extends "base.html" %}
{% block body_wrapper %}
{# content goes here #}
{% endblock body_wrapper%}
#static/styles.css:
#页面内容,#cookie警告{
显示:无;
}
#模板/base.html
RWD/RESS网站
警告:您必须在浏览器中启用JavaScript才能使用此网站。
警告:您必须启用Cookie才能使用此网站。
{%block body_wrapper%}{%endblock%}
//用于测试功能的函数
var javascript_enabled=函数(){
//var elem=document.getElementById(“页面内容”);
返回true;
};
var cookies_enabled=函数(){
var cookieEnabled=(navigator.cookieEnabled)?true:false;
if(typeof navigator.cookieEnabled==“undefined”&&!cookieEnabled){
document.cookie=“test\u cookie”;
cookieEnabled=(document.cookie.indexOf(“test_cookie”)!=-1)?true:false;
}
返回已启用;
};
//函数以允许多个onload事件侦听器
函数addLoadEvent(func){
var oldOnLoad=window.onload;
if(typeof window.onload!=“函数”){
window.onload=func;
}否则{
window.onload=函数(){
if(oldOnLoad){
oldOnLoad();
}
func();
}
}
}
//为功能函数添加onload事件。
addLoadEvent(cookies\u已启用);
addLoadEvent(启用javascript_);
//切换页面内容或警告消息。
如果(javascript_enabled()==true){
var pageContentElem=document.getElementById(“页面内容”);
如果(cookies_enabled()==真){
pageContentElem.style.display=“块”;
}否则{
var cookieWarningElem=document.getElementById(“cookie警告”);
cookieWarningElem.style.display=“块”;
pageContentElem.style.display=“无”;
}
}
#模板/some_page.html
{%extends“base.html”%}
{%block body_wrapper%}
{#内容在这里#}
{%endblock正文\u包装器%}
您可以使用标签:
在base.html
中
<html>
<head></head>
<body>
<noscript>
<h3>Javascript is disabled</h3>
<style type="text/css">
#main {display: none; }
</style>
</noscript>
<script type="text/javascript">
if(!navigator.CookieEnabled){
document.getElementById('main').innerHtml = "Cookies are disabled";
}
</script>
<div id="main">
{# This has the body's main content. #}
</div>
</body>
</html>
Javascript已禁用
#主{显示:无;}
如果(!navigator.CookieEnabled){
document.getElementById('main').innerHtml=“Cookies已禁用”;
}
{这是正文的主要内容。}