oogle Web Design 10.0今天正式发布。它是适用于 Windows、Mac 和 Linux 的 HTML5 内容生成工具,凭借着用户友好性和丰富的辅助功能,而成为各种 Web 内容的首选。Google Web Design 10.0.0.1123 版本新增了 4 个方面的功能,并修正了 12 个问题。
如果您已连接到互联网,Google Web Designer 会在启动时自动进行更新。您也可以手动下载最新版本。
版本 10.0.0.1123 中的新功能
身份验证方面的更改
我们实现了一种更安全的 Google 帐号登录方式。现在,登录流程将在默认浏览器内完成。
在“图片处理”对话框中剪裁图片
现在,您可以在“图片处理”对话框中剪裁图片。Google Web Designer 会建议要裁剪的区域,并且您可以手动进行调整。
发布到 Campaign Manager 360
我们推出了一个新的发布选项,以便您将广告素材直接上传到 Campaign Manager 360。使用此选项时,您需要指定广告客户,并自行决定是否指定广告系列。
贴靠方面的更改
我们添加了多种贴靠模式,以便您通过贴靠对象,使对象具有相同大小或保持相同间距。您还可以更改贴靠阈值和范围。
版本 10.0.0.1123 中修正的问题和进行的改进组件
动态数据绑定现在可用于粒子效果组件、视差组件和旋涡组件。
[过渡效果图库] 修正了以下问题:当使用预设的“重复次数”值时,自动播放会无限循环。
钢笔工具
修正了以下问题:在绘制嵌套形状时,定位点会移动。
修正了以下问题:无法正常撤消或重做最左边或最上方的定位点。
其他
[代码视图] 现在,在 Google Web Designer 以外修改图片后,相应图片会在设计视图中更新。
[事件] 修正了以下问题:当文件中包含事件时,“全部保存”命令不起作用。
[组] 在俯视图或侧视图中绘制的组的高度现在会四舍五入为 0 像素,而非使用指数表示。
[资源库] 修正了以下问题:无法按日期排序。
[发布到云端硬盘]“发布到云端硬盘”现在接受使用空位置/未设置的位置作为根目录。
[模板] 修正了以下问题:会导致模板库中缺少尺寸的模板加载顺序问题。
[时间轴] 修正了以下问题:右键点击标签下的图层会触发相应标签的弹出式菜单,而非触发图层的弹出式菜单。
[自适应] 修正了以下问题:无法在“CSS”面板中向默认媒体规则添加样式替换。
已知问题
仅限 Safari:绘图中的 元素会阻止裁剪路径遮罩动画。
Chrome 和 Opera:当主元素包含 3D 转换后的子元素时,裁剪路径遮罩无法正确渲染。
对自定义 Google Web Designer 元素(gwd-image
、gwd-video
、gwd-audio
、gwd-iframe
、gwd-page
和gwd-pagedeck
)的引用可能无法按预期运行。了解如何更新您的引用。
当您直接在浏览器中打开 .html 源文件时,时间轴动画事件(如暂停或循环播放)不能正常运行。这是预料之中的问题,因为时间轴动画 CSS 是在预览或发布文档时生成的。解决方案:使用“预览”按钮;或者先在本地发布文档,然后在浏览器中查看发布的文件。
缺少文件扩展名且文件名中包含点号的图片文件无法导入到资源库中。临时解决方法:为文件名添加文件扩展名(如 .png)。
过时的视频驱动程序可能会导致启动时出现黑屏。请尝试更新视频驱动程序。如果无效,请在重新启动之前停用 GPU 渲染,具体方法是:退出 Google Web Designer,然后按照下文中与您的操作系统对应的说明操作:
Windows:向注册表中的HKEY_CURRENT_USER\Software\Google\Web Designer\Settings
添加一个名为disable-gpu-rendering
的 DWORD32 值,并将此值设为1
。
Mac:向~/Library/Preferences/com.google.WebDesigner.plist
添加一个名为disable-gpu-rendering
且值为YES
的布尔值行,或者在终端运行defaults write com.google.WebDesigner.plist disable-gpu-rendering -bool true
。
Linux:向~/.local/share/google-web-designer/preferences/settings.conf
添加一个名为disable-gpu-rendering
且值为true
的行。(如果[Settings]
部分不存在,您将需要先创建该部分。)
修一台慧生7寸视频机,有声音,黑屏。细看屏上有图像,是背光不亮。拆机检查背光电路输出只有0.3V,经检查为背光升压电路损坏。因为手里没有这种集成块,决定外加小板。
找到一块车用MP3电源转换小板,用的是MC34063A集成块。因为原板是12V变5V的降压型电源,而本机要3.7升9V的升压型电源,按计算取值,找到元件(部分元件用原板的),对照图纸进行改装。除电解2只和电感1只用普通直立安装元件外,其他元件用贴片元件,在原基板上改线安装。电路板输出接在屏线上(要断开屏线上原来的LED供电焊点,以脱开与电路板的联接);供电找到原主板上受控的电压点接线。安装完成后通电测试,完全达到计算指标。实测输出8.96V,电流58.5mA.
用厚一些的纸把升压小板包好,外缠透明胶,放在机内空位置,就算做好绝缘了。经使用,屏幕亮度正常。
原文:https://www.jdwx.info/thread-779664-1-1.html
家电维修论坛是专业的家电维修技术交流社区,学习电子电路基础知识,分享家电维修技术资料,交流家电维修技巧经验,获取更多精彩内容请关注家电维修论坛。
HTTP协议范围请求允许服务器只返回一部分资源到客户端,范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。
涉及知识点:nginx http协议
前端用户反馈,在Mac或iOS下Safari浏览器无法播放视频,但Chrome等浏览器又可以,视频由HTML5的Video标签实现,简化示例代码如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>demo</title> <body> <video width="30%" controls="true" x5-playsinline="true" src="http://example.com/demo.mp4"></video> </body> </html>
分别通过Safari与Chrome浏览器打开,并同时开启开发者模式:
safari访问情况,视频无法打开:
chrome访问情况,视频打开正常:
对比之下容易发现发现请求头略有不通之处,主要差别在于Range的值。
safari为:
Range: bytes=0-1
chrome为:
Range: bytes=0-
大概率问题围绕在Range请求头相关。
在HTTP协议请求中,可通过设置请求头:Range,实现范围数据获取,告知服务器返回资源的哪一部分。请求某范围内的资源可以更有效地对大型对象发出请求(分段对其发出请求),或者更有效地从传输错误中恢复(允许客户端请求没有完成的那部分资源)。
在一个Range请求头中,支持三种请求方式:单一范围查询、多重范围查询、条件范围查询。
单一范围查询:
Range: <unit>=<range-start>- Range: <unit>=<range-start>-<range-end>
多重范围查询:
Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end> Range: <unit>=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end>
条件范围查询:
If-Range: entity-tag If-Range: HTTP-date Range: <unit>=<range-start>-<range-end>
条件范围查询需配合If-Range实现,当字段值中的条件得到满足时,Range头字段才会起作用,HTTP-date为资源Last-Modified时间,entity-tag一般设置为资源的md5值(不管Last-Modified或etag,首先需确保资源存在该响应头)。
并不是所有服务端都接受范围请求,但很多都可以。服务端可以通过在响应中包含Accept-Ranges请求头向客户端说明可以接受范围请求,这个值在HTTP1规范中只定义了bytes,表示范围的单位是以字节计算的。
Accept-Ranges: bytes 范围请求的单位是 bytes (字节) Accept-Ranges: none 不支持范围请求,其等同于没有返回此头部,因此很少使用
-r, --range RANGE 获取资源数据的范围,从字节哪里到哪里 -I, --head 只获取响应头信息,不捕获响应体,也就是Head请求
登陆缓存服务器,查看nginx.conf中的proxy_cache设置
nginx.conf设置示例:
proxy_cache_key $host$uri; proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;
如上所示,假设$host=example.com,uri=/hello/world.jpg,则缓存在本地磁盘可通过如下算法获得:
echo -n 'example.com/hello/world.jpg' | md5sum d34eacb50650153d77e82aded8de91a0
即存在路径,路径0与1a根据levels设置得出:
/data/nginx/cache/0/1a/d34eacb50650153d77e82aded8de91a0
获取缓存前20行数据(主要是查看后端真实服务器的响应头)
strings /data/nginx/cache/0/1a/d34eacb50650153d77e82aded8de91a0 | head -n 20
手工删除缓存:
rm /data/nginx/cache/0/1a/d34eacb50650153d77e82aded8de91a0 | head -n 20
以上步骤将会在以下实验中不断使用到。
通过curl命令进行模拟测试:
请求的资源字节范围为:1000-2000。结果响应状态码为200,通过Content-Length可以看出,实际返回了整个资源,根据理论知识可知,实际是缓存服务器忽略了来自客户端的Range请求头。
可知缓存服务器并不支持Range请求范围查询。
通过设置nginx的add_header指令对缓存服务器添加请求头
add_header "Accept-Ranges" bytes;
返回了Accept-Ranges请求头,但实际还是不支持Range请求范围查询。
通过缓存服务器,获取缓存文件前20行,如下:
实际缓存在服务器中的数据也不包含Accept-Ranges请求头。
在真实服务器上主动设置返回Accpet-Ranges请求头,同时清除缓存服务器上的缓存数据。
Accept-Ranges: bytes
查看缓存服务器上的数据,来自源服务器的响应头:
缓存在服务器上的数据包含Accept-Ranges,也就是来自源服务端的响应包含此请求头,此时缓存服务器对客户端是支持Ranges的范围请求了。
由实验3可知,当缓存不存在时,即时客户端为范围请求数据,缓存在本地的数据均为整体,而非部分。
通过nginx官方的ngx_http_proxy_module文档,存在如下关键描述:
If caching is enabled, the header fields “If-Modified-Since”, “If-Unmodified-Since”, “If-None-Match”, “If-Match”, “Range”, and “If-Range” from the original request are not passed to the proxied server.
大意如下:如果设置了缓存,则不会对客户端请求中的“If-Modified-Since”, “If-Unmodified-Since”, “If-None-Match”,“If-Match”, “Range”, “If-Range”这几个请求头传递到后端真实服务器。
所以客户端通过范围请求资源,如果缓存服务器没有数据,那缓存服务器将会去源站获取整个数据并缓存,而不管客户端是否为范围请求。
此时缓存服务器支持Range范围请求之后,在通过浏览器查看效果:
由于担心涉及版权,播放效果的图片取消了。
此时不在是原先的黑屏,可正常播放视频了。
由源服务器程序实现范围请求功能,返回给缓存服务器时需明确包含Accept-Ranges头,如果值非bytes,为其他自定义类型,则两端均需对该类型的实现。
如果缓存服务器是基于nginx1.7.7及以上版本,可通过设置proxy_force_ranges参数值为on来实现,默认为off,而不管后端服务是否设置Accept-Ranges请求头。
Syntax: proxy_force_ranges on | off;
Default: proxy_force_ranges off;
Context: http, server, location
This directive appeared in version 1.7.7.
结合当前业务情况,最终评估通过方案2实现。
*请认真填写需求信息,我们会在24小时内与您取得联系。