相关疑难解决方法(0)

localStorage值的最大大小是多少?

由于localStorage(当前)仅支持字符串作为值,并且为了做到这一点,对象需要在存储之前进行字符串化(存储为JSON字符串),是否存在关于值的长度的定义限制.

有谁知道是否有适用于所有浏览器的定义?

javascript html5 local-storage

493
推荐指数
12
解决办法
35万
查看次数

Safari的html5 localStorage错误:"QUOTA_EXCEEDED_ERR:DOM例外22:尝试向超出配额的存储添加内容."

我的webapp在ios safari私密浏览中有javascript错误:

JavaScript的:错误

未定义

QUOTA_EXCEEDED_ERR:DOM例外22:尝试向存储添加内容......

我的代码:

localStorage.setItem('test',1)
Run Code Online (Sandbox Code Playgroud)

javascript html5 web-applications local-storage

132
推荐指数
5
解决办法
14万
查看次数

localStorage的持久性如何?

对于我正在编写的插件,我在很大程度上依赖于localStorage.所有用户设置都存储在其中.某些设置要求用户使用写正则表达式,如果他们的正则表达式规则在某些时候消失,他们会很难过.所以现在我想知道localStorage是多么持久.

规格:

用户代理应仅出于安全原因或用户请求时从本地存储区域过期数据.

以上看起来就像客户端上的cookie一样.即,当用户清除所有浏览器数据(历史记录,cookie,缓存等)时,localStorage也将被截断.这个假设是否正确?

javascript persistence persistent-storage local-storage

94
推荐指数
4
解决办法
7万
查看次数

检查localStorage是否可用

我知道有很多关于检查的问题localStorage但是如果有人在浏览器中手动关闭它会怎么样?这是我用来检查的代码:

localStorage.setItem('mod', 'mod');
if (localStorage.getItem('mod') != null){
  alert ('yes');
  localStorage.removeItem('mod');
} else {
  alert ('no');
}
Run Code Online (Sandbox Code Playgroud)

功能简单,有效.但是,如果我进入我的Chrome设置并选择"不保存数据"选项(我不记得它的确切名称),当我尝试运行此功能时,我什么也得不到Uncaught Error: SecurityError: DOM Exception 18.那么有没有办法检查这个人是否完全关闭了?

更新:这是我尝试的第二个功能,我仍然没有得到任何响应(警报).

try {
  localStorage.setItem('name', 'Hello World!');
} catch (e) {
  if (e == QUOTA_EXCEEDED_ERR) {
   alert('Quota exceeded!');
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript error-handling local-storage

67
推荐指数
5
解决办法
7万
查看次数

在HTML5 Web App中使用OAuth2

我目前正在尝试使用OAuth2开发一个完全用JavaScript构建的移动应用程序,该应用程序与CakePHP API进行通信.看看下面的代码,看看我的应用程序当前的外观(请注意,这是一个实验,因此代码混乱,缺乏结构区域等等.)

var access_token,
     refresh_token;

var App = {
    init: function() {
        $(document).ready(function(){
            Users.checkAuthenticated();
        });
    }(),
    splash: function() {
        var contentLogin = '<input id="Username" type="text"> <input id="Password" type="password"> <button id="login">Log in</button>';
        $('#app').html(contentLogin);
    },
    home: function() {  
        var contentHome = '<h1>Welcome</h1> <a id="logout">Log out</a>';
        $('#app').html(contentHome);
    }
};

var Users = {
    init: function(){
        $(document).ready(function() {
            $('#login').live('click', function(e){
                e.preventDefault();
                Users.login();
            }); 
            $('#logout').live('click', function(e){
                e.preventDefault();
                Users.logout();
            });
        });
    }(),
    checkAuthenticated: function() {
        access_token = window.localStorage.getItem('access_token');
        if( access_token == null ) {
            App.splash(); …
Run Code Online (Sandbox Code Playgroud)

javascript oauth-2.0

47
推荐指数
2
解决办法
3万
查看次数

HTML5中的本地存储,会话存储,Web存储,Web数据库和cookie

这些概念之间有什么区别,我应该何时特别使用?此列表是否也包含相同一般概念的不同名称?

  • HTML5本地存储
  • HTML5会话存储
  • HTML5网络存储
  • HTML5网络数据库
  • 饼干

cookies html5 session-storage local-storage web-sql

29
推荐指数
1
解决办法
1万
查看次数

带有socket.io的React-Redux和Websockets

我是React-Redux技术的新手,我希望你能帮助我实现一些功能.

我想用套接字(socket.io)实现一个聊天应用程序.首先,用户必须注册(我在服务器端使用护照),之后,如果注册成功,则用户必须连接到webSocket.

我认为最好的方法是使用像管道这样的中间件来执行所有操作,并根据什么样的操作获取中间件,做不同的事情.

如果操作类型是AUTH_USER,则创建客户端 - 服务器连接并设置将来自服务器的所有事件.

如果操作类型是MESSAGE向服务器发送消息.

代码片段:

----- socketMiddleware.js ----

import { AUTH_USER,  MESSAGE } from '../actions/types';

import * as actions from 'actions/socket-actions';

import io from 'socket.io-client';

const socket = null;

export default function ({ dispatch }) {

    return next => action => {

        if(action.type == AUTH_USER) {

            socket = io.connect(`${location.host}`);

            socket.on('message', data => {

               store.dispatch(actions.addResponse(action.data));

            });

        }

        else if(action.type == MESSAGE && socket) {

            socket.emit('user-message', action.data);

            return next(action)

        } else {
            return next(action)
        } …
Run Code Online (Sandbox Code Playgroud)

middleware socket.io reactjs redux

21
推荐指数
2
解决办法
9958
查看次数

客户返回时保持大型HTML页面的滚动位置

我服务很长的html页面(短电子书)

当客户回来时,由于长html页面而试图找到离开的确切位置太麻烦了.

是否有一种简单的方法可以自动维护滚动位置,以便下次客户端返回页面时,页面会自动向下滚动到停止的位置.这需要透明,即不要点击"存储"滚动位置.

javascript scroll

17
推荐指数
3
解决办法
2万
查看次数

如何实现安全的“记住我”

我想弄清楚如何在我正在开发的应用程序中实现“记住我”。目前我的实现看起来像这样。

  1. 用户登录并请求被记住
  2. 服务器使用电子邮件/密码验证用户
  3. 如果验证成功,我将使用用户的电子邮件和存储在服务器上的密钥生成一个 JSON Web 令牌。
  4. 然后将令牌作为 cookie 发送回客户端。但同时令牌使用 bcrypt 进行散列并存储在数据库中的用户信息中。
  5. 现在,当用户稍后访问该页面时,该 cookie 会在页面加载并根据数据库中存储的哈希进行验证时发送到服务器。

对我来说,这“似乎”是安全的,因为令牌本质上成为用户的密码并在服务器端进行相应处理。但是,我不确定这是否真的安全,或者我是否遗漏了什么。

javascript security bcrypt jwt reactjs

8
推荐指数
1
解决办法
1万
查看次数

如何在此脚本中添加cookie以缓存样式表更改

我需要在此脚本中添加一个Cookie,这样当您点击#full-width或#fixed-width时,它会记住您下次访问时的观看次数

<button id="full-width">GO FULL WIDTH</button>
<button id="fixed-width">GO FIXED WIDTH</button>

$(document).ready(function () {

    $("#full-width").click(function () {

        $('head').append('<link rel="stylesheet" href="http://www.nitrografixx.com/2015/ladder/full-ladder.css" type="text/css" />');

    });

    $("#fixed-width").click(function () {

        $('link[rel=stylesheet][href="http://www.nitrografixx.com/2015/ladder/full-ladder.css"]').remove();

    });

});
Run Code Online (Sandbox Code Playgroud)

我发现这个cookie已经在我的网站上用于另一个脚本,但我不知道如何为上面的脚本安装它.

function setCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/; domain=.myfantasyleague.com";
}

function …
Run Code Online (Sandbox Code Playgroud)

jquery

7
推荐指数
1
解决办法
375
查看次数