小编Wal*_*ril的帖子

在Python 2中搜索等效的FileNotFoundError

我创建了一个名为Options的类.它工作正常,但不是没有Python 2.我希望它可以在Python 2和3上工作.问题是:Python 2中不存在FileNotFoundError但是如果我使用IOError它在Python 3中不起作用

版本3.3中已更改:EnvironmentError,IOError,WindowsError,VMSError,socket.error,select.error和mmap.error已合并到OSError中.

我该怎么办?(请不要讨论我对便携性的选择,我有理由.)

这是代码:

#!/usr/bin/python
#-*-coding:utf-8*

#option_controller.py

#Walle Cyril
#25/01/2014

import json
import os

class Options():
    """Options is a class designed to read, add and change informations in a JSON file with a dictionnary in it.

    The entire object works even if the file is missing since it re-creates it.
    If present it must respect the JSON format: e.g. keys must be strings and so on.
    If something corrupted the file, just destroy the file or …
Run Code Online (Sandbox Code Playgroud)

python exception-handling file python-2.7 python-3.x

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

如何在手机浏览器无效标签中保持WebRTC dataChannel打开?

我正在制作一个使用WebRTC的Web应用程序.它适用于桌面浏览器.但是,在小型智能手机网络浏览器上,有不需要的事件:

当在Android的移动网络浏览器chrome和forfox的firefox上切换标签时,使用.createDataChannel关闭创建一个开放的webrtc数据通道.该dataChannel.onclose事件处理程序被触发.如何防止数据通道关闭?如果不可能,是否可以在不重新启动整个信令阶段的情况下重新打开数据通道?

浏览文件时也会发生这种情况 <input type="file">

我浏览计算器了一下,发现有被砍掉其他东西/在活动标签页就像放缓requestTimeOutsetInterval.

是否需要任何自动化以强制它在后台保持打开状态.

javascript html5 mobile-website webrtc

21
推荐指数
1
解决办法
889
查看次数

我应该在服务工作者中使用自己还是这个?

我已经看到了this作为共享工作者上下文的用法,但也见过self其他文档.

我应该使用哪一个?

javascript service-worker

11
推荐指数
1
解决办法
2444
查看次数

是否有一种浏览器无关的方法来增加复选框的大小而不更改HTML标记?

是否有浏览器无关的方法来增加<input type="checkbox">大小而不更改HTML标记?

我尝试在CSS中更改高度和宽度但问题是在Firefox中复选框变得像素化.在Opera中,只有输入的逻辑大小增加,而不是视觉.

我应该使用<label> and :before伪选择器使它看起来漂亮和大,有哪些替代解决方案?

尽可能避免使用JavaScript.

html css user-interface input

10
推荐指数
1
解决办法
549
查看次数

在卸载事件之前有什么限制?

beforeunload回调中有什么和不可能做什么?

是否可以打开XHR/fetch并将数据发送到服务器?如果不是,是否可以只发送数据,而没有任何成功的回调阻止?

是否可以更改页面的位置window.location?功能继续执行多长时间?

window.addEventListener("beforeunload", function (event) {
    // code
});
Run Code Online (Sandbox Code Playgroud)

javascript browser

10
推荐指数
2
解决办法
4309
查看次数

DOM中安全的最大节点数量?

对于web应用,给定运行目标移动浏览器2的目标移动设备1中的可用存储器,如何估计可以通过HTML或DHTML生成的DOM节点(包括文本节点)的最大数量?

如何计算之前的估计值

  • 失败
  • 紧急
  • 响应显着降低

此外,是否有任何浏览器的硬限制不打开每个标签?

关于事先关闭

这与下面评论中的其他问题不同.它还提出了一个非常具体的问题,寻求一种估算方法.没有任何重复,广泛或基于它的意见,特别是现在它是为了清晰而重写而不改变其作者表达的兴趣.


脚注

[1]例如,从2013年到2018年销售的Android或IOS移动设备具有一些特定的RAM容量

[2] Firefox,Chrome,IE 11,Edge,Opera,Safari

html dom cross-browser out-of-memory

9
推荐指数
1
解决办法
4745
查看次数

如何强制在运行时加载媒体,而不是现在播放?

我正在制作一个可以长时间打开的网络应用程序.我不想在加载时加载音频(当HTML被下载和解析时)以尽可能快地进行第一次加载并为移动用户节省宝贵的资源.默认情况下禁用音频.将音频放入CSS或使用预加载在这里是不合适的,因为我不想在加载时加载其余部分.

我正在寻找一种理想的方法来在运行时加载音频,(在选中复选框后,这可以在打开应用程序后20分钟后)给出一个音频元素列表.

该列表已经在变量中 allSounds.我在网页上有以下音频(还有更多):

 <audio preload="none">
  <source src="sound1.mp3">
 </audio>
Run Code Online (Sandbox Code Playgroud)

我想保留相同的HTML,因为在第二次访问后我可以轻松地将其更改为(这与我的服务器端HTML生成一起工作正常)

 <audio preload="auto">
  <source src="sound1.mp3">
 </audio>
Run Code Online (Sandbox Code Playgroud)

它的工作原理.

打开选项后,我想加载声音,但不能立即播放.我知道.play()会加载声音.但我想避免按下按钮和相关的反馈声之间的延迟.最好不要播放声音而不是延迟(在我的应用程序中).

我制作了这个事件处理程序来加载声音(它可以工作),但在Chrome控制台中,它说下载已取消,然后重新启动我不知道我到底做错了什么. 这是强制加载声音的正确方法吗?还有什么其他方法?如果可能,不更改HTML.

let loadSounds = function () {
  allSounds.forEach(function (sound) {
    sound.preload = "auto";
    sound.load();
  });
  loadSounds = function () {}; // Execute once
};
Run Code Online (Sandbox Code Playgroud)

这里是playSound功能,但对于这些问题不是很重要

const playSound = function (sound) {
  // PS
  /* only plays ready sound to avoid delays between fetching*/
  if (!soundEnabled)) {
    return;
  }
  if (sound.readyState < sound.HAVE_ENOUGH_DATA) {
    return;
  }
  sound.play();
};
Run Code Online (Sandbox Code Playgroud)

附带问题:preload="full" …

html javascript media http

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

最后类型的CSS在加载时不匹配

我想我发现了chrome和opera中的一个bug,想要一个解决方案,让css选择器section:last-of-type在文档仍在加载时工作.该错误仅在文档仍在加载时出现:这是NodeJS中用于公开错误的最小示例:

当文档仍在加载时,最后一个类型不匹配会发生什么.在IE中匹配,然后匹配两次,然后在加载时再次正确匹配.它在Firefox中运行良好.

最后的-type.js

"use strict";
const http = require(`http`);

const PORT = 8080;

const htmlStart = `<!DOCTYPE html>
<html lang="en"><head>
    <meta charset="utf-8">
    <title>html streaming</title>
    <meta name="viewport" content="width=device-width">
    <style>

section {
    position: absolute;
    left: 0;
    right: 0;
}

section:last-of-type {
    animation: comin 1.4s ease 0s;
    left: 0;
    opacity: 1;
}

@keyframes comin {
    0% {
      left: 100%;
    }
    100% {
      left: 0;
    }
}

section:not(:last-of-type) {
   animation: comout 1.4s ease 0s;
   left: -100%;
   opacity: 0;
}

@keyframes comout { …
Run Code Online (Sandbox Code Playgroud)

html css opera internet-explorer google-chrome

6
推荐指数
1
解决办法
258
查看次数

为什么通过WebRTC发送的消息有时会以不同的顺序收到?

我将ordered set设置为true,但是如果在短时间内(<1秒)发送了许多(1000或更多)消息,则收到的消息不会以相同的顺序接收.

rtcPeerConnection.createDataChannel("app", {
   ordered: true,
   maxPacketLifeTime: 3000
});
Run Code Online (Sandbox Code Playgroud)

如果需要,我可以提供一个最小的例子来重现这种奇怪的行为.

我还使用bufferedAmountLowThreshold和相关事件来延迟发送缓冲量太大.我选择2000但我不知道最佳数字是多少.我在短时间内收到如此多邮件的原因是因为我不想溢出一次发送的最大数据量.所以我将数据分成800字节包并发送.我再次不知道1条消息的最大大小是多少.

const SEND_BUFFERED_AMOUNT_LOW_THRESHOLD = 2000; //Bytes
rtcSendDataChannel.bufferedAmountLowThreshold = SEND_BUFFERED_AMOUNT_LOW_THRESHOLD;
const MAX_MESSAGE_SIZE = 800;
Run Code Online (Sandbox Code Playgroud)

对于未分成太多消息的小数据,一切正常.仅对大文件随机发生错误.

arraybuffer webrtc rtcdatachannel

5
推荐指数
1
解决办法
350
查看次数

如何将链接列表显示为下拉选择?

我想显示一个像下拉选择一样的链接列表,如果可能的话,不要丢失语义。这是我尝试过的。CSS现在显然不起作用。对于选择,我location.href在 JavaScript 中模拟了一些链接,但它失去了语义价值,我猜它失去了可访问性。

没有 jQuery 和 Bootstrap,

如何将链接列表显示为下拉选择?

document.getElementById("0").addEventListener("change", function (event) {
  location.href = event.target.value;
});
Run Code Online (Sandbox Code Playgroud)
.like-select {
  appearance: select;
}
Run Code Online (Sandbox Code Playgroud)
<p>Semantic wanted</p>
<ul class="like-select">
  <li><a href="https://en.wikipedia.org/wiki/Main_Page">Wikipedia</a></li>
  <li><a href="https://stackoverflow.com">Stack Overflow</a></li>
  <li><a href="http://www.echojs.com/">Echo Js</a></li>
</ul>

<p>Look and feel wanted especially on mobile</p>
<select id="0">
  <option value="https://en.wikipedia.org/wiki/Main_Page">Wikipedia</option>
  <option value="https://stackoverflow.com">Stack Overflow</option>
  <option value="http://www.echojs.com/">Echo Js</option>
</select>
Run Code Online (Sandbox Code Playgroud)

html javascript css accessibility semantic-markup

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

什么可以导致Promise被'InvalidStateError'拒绝?

什么可以导致承诺在'InvalidStateError'这里被拒绝?

const SERVICE_WORKER_VERSION = "3.0.0"; // is updated in the build when things change
const CACHE_VERSION = SERVICE_WORKER_VERSION;

const fillServiceWorkerCache = function () {
    /* save in cache some static ressources 
    this happens before activation */
    return caches.open(CACHE_VERSION).then(function(cache) {
        return cache.addAll(ressourcesToSaveInCache);
    });
};

self.addEventListener("install", function (event) {
    /*event.waitUntil takes a promise that should resolves successfully*/
    event.waitUntil(fillServiceWorkerCache().then(function() {
        return self.skipWaiting();
    }));
});
Run Code Online (Sandbox Code Playgroud)

在Firefox版本52上发生以下错误:Service worker event waitUntil() was passed a promise that rejected with 'InvalidStateError: An attempt was made …

javascript service-worker

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