小编fle*_*ive的帖子

JS客户端Exif方向:旋转和镜像JPEG图像

数码相机照片通常以JPEG格式保存,并带有EXIF"方向"标签.要正确显示,需要根据设置的方向旋转/镜像图像,但浏览器会忽略渲染图像的信息.即使在大型商业网络应用程序中,对EXIF方向的支持也可能不稳定1.相同的源代码还提供 了JPEG可以具有的8种不同方向的精彩摘要:

EXIF方向摘要

样本图像可在4处获得.

问题是如何在客户端旋转/镜像图像,以便正确显示并在必要时进一步处理?

有JS库可用于解析EXIF数据,包括orientation属性2.Flickr在解析大图像时注意到了可能的性能问题,需要使用Web工作者3.

控制台工具可以正确地重新定向图像5.解决问题的PHP脚本可在6处获得

javascript exif rotation html5-canvas

131
推荐指数
7
解决办法
14万
查看次数

可以使用Cloudflare缓存和保护REST API吗?

我正在设计一个RESTful API,旨在供单页应用程序和本机移动应用程序使用.此API的某些调用会返回可以缓存一段时间的公开结果.此外,需要速率保护来保护API免受未经授权的用户(蜘蛛)

我可以使用Cloudflare为我的RESTful API实现缓存和速率限制/ DDOS保护吗?

缓存: Cloudflare 支持HTTP缓存控制头,因此API可以决定通过GET请求的每个实体是否公开以及缓存多长时间.

  • 但是,目前尚不清楚缓存控制头是否也下游传递给客户端,因此还会触发浏览器缓存响应?这可能是不可取的,因为它可能使故障排除更加困难
  • Akamai有一个Edge-Control标头,可确保内容缓存在CDN中而不是浏览器中.可以用Cloudflare做类似的事吗?

DDOS保护: Cloudflare支持有一篇文章建议对后端API禁用DDOS保护,但这不适用于我的用例,即每个客户端应该向API发出少量请求.本机DDOS保护实际上符合我保护API免受机器人攻击的要求.

  • 我需要知道如何以编程方式检测Cloudflare何时服务于Captcha/我受到攻击等页面这将允许SPA /移动应用程序智能地做出反应,并将用户重定向到Web视图,在那里她可以演示她" hummanness".

  • 从Cloudflare文档中,显示DDOS质询时发送的HTTP状态代码并不明显.绕过Cloudflare DDOS保护的开源云计算器似乎表明Captcha和挑战页面的HTTP状态为200. 有没有比解析请求体更好的方法来确定是否启动了DDOS保护?

  • Cloudflare 显然使用cookie记录谁成功解决了Captcha.这显然会增加本机应用程序的额外复杂性.在挑战解决后,有没有一种方法可以将Cloudflare会话cookie转移回本机应用程序?

可能这是一个先进的Cloudflare用例 - 但我认为它很有前途,并且很高兴听到有人有这样的经历(在Cloudflare或其他CDN上).

rest caching ddos cloudflare single-page-application

33
推荐指数
3
解决办法
8599
查看次数

如何防止(引导)固定顶部导航从移动缩放

当使用bootstrap 3的固定顶部导航时,我注意到当用户在移动设备上使用原生缩放时,顶部导航也变得非常大.这导致了非常差的用户体验,导航模糊了大部分内容并最终破坏了自身,如下例所示:

在移动浏览器中使用本机缩放时,固定顶部导航会爆炸

这个问题可以在http://www.exploretrade.info/上看到,并且似乎也会影响使用这种导航的许多其他网站; 一个常见的解决方案是禁用用户缩放,但这会损害网站的可访问性.

我的问题是:当用户缩放移动设备上的内容时,如何使固定顶部导航的显示大小保持不变

  • 使用JavaScript,可以计算当前应用的设备缩放,并动态更新css transform: scale指令2
  • 但是,这似乎不适用于position: fixed元素,在缩小之后最终以某种方式居中在屏幕中

css mobile jquery html5 twitter-bootstrap-3

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

无需JavaScript即可展开/折叠移动导航栏

在移动设备上,Bootstrap 3默认情况下将导航栏(导航栏)缩小为汉堡图标.单击汉堡包时,JavaScript会切换导航菜单项的显示 - 扩展或折叠导航栏.但

如何在不需要JavaScript的情况下切换bootstrap mobile navbar collapse/expand?

如果这是可能的,它将具有良好的性能优势:用户可以在JavaScript执行之前已经导航(在片状移动连接上有好处),而较小的项目可能能够完全放弃对jQuery + bootstrap javascript的依赖,节省大约45k在第一页加载.此外,在JS错误的情况下,网站变得更加健壮 - 至少页面导航保持可用.

或者,可以在没有jQuery依赖的情况下重新实现bootstrap JS - 在这里完成导航栏.

作为参考,这是静态导航栏顶部示例在移动模式下的样子:

Bootstrap 3移动导航栏扩展

javascript css jquery twitter-bootstrap

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

升级所有标准包,同时保留非标准包

有时 GNU R 有一个问题,Hadley Wickham建议

我建议您重新安装所有软件包。

问题是如何以最好的方式做到这一点。我知道install.packagesupdate.packages将升级所有软件包版本并覆盖现有版本

update.packages(checkBuilt = TRUE, ask = FALSE)
Run Code Online (Sandbox Code Playgroud)

使用 CRAN 包时(GitHub 或其他来源没有什么特别之处),这种天真的方法对我有用:

my.packages <- rownames(installed.packages());
install.packages(my.packages);
Run Code Online (Sandbox Code Playgroud)

例如,如果我从 GitHub 安装了开发版本,或者使用了一些未公开共享的本地包,我该怎么办?

我正在寻找的是一种方法:

  1. 检查新安装(升级/降级)导致的软件包更改;
  2. 从同一来源再次安装软件包;和
  3. 备份我的旧包文件夹。

我该如何满足这些要求?

customization r upgrade cran

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

Laravel Mix:为 IE11 兼容性配置 Babel(转换和 polyfill)

在带有 Laravel-Mix 4 的 Laravel 6 应用程序中,并使用 Vue 预设,我需要编译我的 JavaScript 代码以兼容 IE11。这意味着为缺失的函数添加任何 polyfill,编译出箭头函数,等等。开箱即用,这还没有完成。

我的测试代码resources/js/app.js

//require('./bootstrap');
let test = [1, 2, [3, 4]];
console.log(
    test.flat().map((x) => 2*x)
);
Run Code Online (Sandbox Code Playgroud)

使用默认配置,laravel mix 似乎不会编译 JavaScript 代码,而只会进行一些格式化。注释保留在编译输出中。

结果npm run dev是:

       Asset      Size   Chunks             Chunk Names
/css/app.css   0 bytes  /js/app  [emitted]  /js/app
  /js/app.js  4.95 KiB  /js/app  [emitted]  /js/app
Run Code Online (Sandbox Code Playgroud)

如何让 Laravel-Mix 使用 Babel 创建兼容 IE11 的源代码?

laravel babeljs laravel-mix

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

如何使用 systemd 管理批处理作业的多个实例?

使用 systemd,我想管理具有以下属性的队列工作器的多个实例:

  1. 队列工作人员的数量应该是可配置的
  2. 每个队列工作人员应在失败时重新启动
  3. 运行单个命令来启动/停止/重新启动队列工作人员的所有实例
  4. 使用单个命令监视队列工作程序的所有实例是否正在运行。

我能够实现这些功能,但该解决方案的功能比诸如supervisord之类的替代方案要重。 有没有更简单的方法来单独使用 systemd 来管理多实例服务?

ubuntu service systemd

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