精华内容
下载资源
问答
  • TRANTran」-crx插件

    2021-03-21 08:12:02
    快速翻译multitran(multitran.ru)和一点点 亲爱的朋友们 感谢您使用插件并留下反馈! 如有任何问题或建议,请在此处,在Chrome商店或我的邮箱中填写问题和错误部分:jhnner+tran@gmail.com 谢谢! 附: 捐赠是非常...
  • idea快捷键(翻译版): (1)自动生成get/set,tosting,构造方法的方式:快捷键为:alt+insert;(在编辑框中右击,选择generator,可以拖选住你想要生成get、set方法的属性,点击完成即可自动生成get和set方法...

    idea快捷键(翻译版):


        (1)自动生成get/set,tosting,构造方法的方式:快捷键为:alt+insert;(在编辑框中右击,选择generator,可以拖选住你想要生成get、set方法的属性,点击完成即可自动生成get和set方法);
        (2)提示:alt+enter;
        (3)设置:ctrl+alt+s;
        (4)使用Ctrl+Shift+Enter完成当前语句,例如if、do while、try catch、return(或方法调用)到语法正确的构造中(例如添加花括号);
        (5)使用Ctrl+Shift+I(View | Quick Definition)快速查看插入符号的定义或内容,而无需在新的编辑器选项卡中打开它;
        (6)您可以在HTML、CSS和JavaScript文件中使用Basic Completion(Alt+012)来完成属性、参数、标记、选择器等;
        (7)Code | Move Statement Up/Down操作对于重新组织文件中的代码行很有用,例如,使变量声明更接近变量用法;
        (8)选择代码片段并按Ctrl+Shift+向上箭头 or Ctrl+Shift+向下箭头;
        (9)按Alt+Shift+F10可以访问主工具栏上的“运行/调试”下拉列表,而无需使用鼠标;
        (10)快速定义查看器(Ctrl+Shift+I)也可以用于查找列表中出现在代码完成和类/文件/符号导航命令上的项;
        (11)您可以使用快速定义(Ctrl+Shift+I)快速查看插入符号处引用的图像。基础图像将在弹出窗口中打开,而不是单独的编辑器选项卡;

    (12)通过自动更正类、方法和变量的所有使用位置,您可以轻松地重命名它们。若要尝试,请将插入符号放在要重命名的符号处,然后按Shift+F6(Refactor | rename)。在出现的弹出窗口中键入新名称,或选择一个建议的名称,然后按回车键;

    (13)可以使用Ctrl+/和Ctrl+Shift+/对代码行和代码块进行注释或取消注释。Ctrl+斜杠使用单行注释(//…)注释或取消注释当前行或选定块。Ctrl+Shift+斜杠将选定块括在块注释(/*…*/)中。要取消注释注释块,请在其内部的任何位置按Ctrl+Shift+斜杠。

    (14)使用F2/Shift+F2键在突出显示的语法错误之间跳转。使用Ctrl+Alt+向上箭头/Ctrl+Alt+向下箭头快捷键在编译器错误消息或搜索操作结果之间跳转。若要跳过警告,请右键单击验证侧栏/标记栏并选择“仅转到高优先级问题。

    (15)在编辑器中使用Alt+向上箭头和Alt+向下箭头键在方法之间快速移动。

    (16)Ctrl+Shift+J快捷键将两行合并为一行,并删除与代码样式匹配的不必要空间。

    展开全文
  • tran_app 翻译项​​目的django版源码
  • 软件集成了有道、CP2Tran插件、Google在线翻译、Babylon以及Dreye9.0,翻译游戏内语言更加精准,并支持悬浮显示翻译结果。 【游戏全自动翻译机使用方法】 自动调用AGTH捕获游戏文本并提交翻译引擎自动翻译。 1. 鼠标...
  • 项目目标 把yii2源代码中的英文注释翻译成中文,给想看yii2.0源代码的同学提供一个参考。 基于的版本 2.0.10-dev 说明 1翻译正确参考2如果有翻译不对的地方,欢迎指正交流,邮箱
  • IDEA对新手来说难,可能其中一个原因就是快捷键组合多而且复杂但是它也很全,基本所有功能都可以通过快捷键来完成,可以这么说,如果你掌握了所有IDEA的快捷键使用,那么你完全可以丢掉鼠标,而且不影响开发效率。...

    IDEA对新手来说难,可能其中一个原因就是快捷键组合多而且复杂但是它也很全,基本所有功能都可以通过快捷键来完成,可以这么说,如果你掌握了所有IDEA的快捷键使用,那么你完全可以丢掉鼠标,而且不影响开发效率。这篇是整理得比较全的了,建议大家收藏,日后必定有用!

    Mac键盘符号和修饰键说明

    • ⌘ Command

    • ⇧ Shift

    • ⌥ Option

    • ⌃ Control

    • ↩︎ Return/Enter

    • ⌫ Delete

    • ⌦ 向前删除键(Fn+Delete)

    • ↑ 上箭头

    • ↓ 下箭头

    • ← 左箭头

    • → 右箭头

    • ⇞ Page Up(Fn+↑)

    • ⇟ Page Down(Fn+↓)

    • Home Fn + ←

    • End Fn + →

    • ⇥ 右制表符(Tab键)

    • ⇤ 左制表符(Shift+Tab)

    • ⎋ Escape (Esc)

    一、Editing(编辑)

    • ⌃Space 基本的代码补全(补全任何类、方法、变量)

    • ⌃⇧Space 智能代码补全(过滤器方法列表和变量的预期类型)

    • ⌘⇧↩ 自动结束代码,行末自动添加分号

    • ⌘P 显示方法的参数信息

    • ⌃J, Mid. button click 快速查看文档

    • ⇧F1 查看外部文档(在某些代码上会触发打开浏览器显示相关文档)

    • ⌘+鼠标放在代码上 显示代码简要信息

    • ⌘F1 在错误或警告处显示具体描述信息

    • ⌘N, ⌃↩, ⌃N 生成代码(getter、setter、构造函数、hashCode/equals,toString)

    • ⌃O 覆盖方法(重写父类方法)

    • ⌃I 实现方法(实现接口中的方法)

    • ⌘⌥T 包围代码(使用if..else, try..catch, for, synchronized等包围选中的代码)

    • ⌘/ 注释/取消注释与行注释

    • ⌘⌥/ 注释/取消注释与块注释

    • ⌥↑ 连续选中代码块

    • ⌥↓ 减少当前选中的代码块

    • ⌃⇧Q 显示上下文信息

    • ⌥↩ 显示意向动作和快速修复代码

    • ⌘⌥L 格式化代码

    • ⌃⌥O 优化import

    • ⌃⌥I 自动缩进线

    • ⇥ / ⇧⇥ 缩进代码 / 反缩进代码

    • ⌘X 剪切当前行或选定的块到剪贴板

    • ⌘C 复制当前行或选定的块到剪贴板

    • ⌘V 从剪贴板粘贴

    • ⌘⇧V 从最近的缓冲区粘贴

    • ⌘D 复制当前行或选定的块

    • ⌘⌫ 删除当前行或选定的块的行

    • ⌃⇧J 智能的将代码拼接成一行

    • ⌘↩ 智能的拆分拼接的行

    • ⇧↩ 开始新的一行

    • ⌘⇧U 大小写切换

    • ⌘⇧] / ⌘⇧[ 选择直到代码块结束/开始

    • ⌥⌦ 删除到单词的末尾(⌦键为Fn+Delete)

    • ⌥⌫ 删除到单词的开头

    • ⌘+ / ⌘- 展开 / 折叠代码块

    • ⌘⇧+ 展开所以代码块

    • ⌘⇧- 折叠所有代码块

    • ⌘W 关闭活动的编辑器选项卡

    二、Search/Replace(查询/替换)

    • Double ⇧ 查询任何东西

    • ⌘F 文件内查找

    • ⌘G 查找模式下,向下查找

    • ⌘⇧G 查找模式下,向上查找

    • ⌘R 文件内替换

    • ⌘⇧F 全局查找(根据路径)

    • ⌘⇧R 全局替换(根据路径)

    • ⌘⇧S 查询结构(Ultimate Edition 版专用,需要在Keymap中设置)

    • ⌘⇧M 替换结构(Ultimate Edition 版专用,需要在Keymap中设置)

     

    三、Usage Search(使用查询)

    • ⌥F7 / ⌘F7 在文件中查找用法 / 在类中查找用法

    • ⌘⇧F7 在文件中突出显示的用法

    • ⌘⌥F7 显示用法

    四、Compile and Run(编译和运行)

    • ⌘F9 编译Project

    • ⌘⇧F9 编译选择的文件、包或模块

    • ⌃⌥R 弹出 Run 的可选择菜单

    • ⌃⌥D 弹出 Debug 的可选择菜单

    • ⌃R 运行

    • ⌃D 调试

    • ⌃⇧R, ⌃⇧D 从编辑器运行上下文环境配置

     

    五、Debugging(调试)

    • F8 进 入下一步,如果当前行断点是一个方法,则不进 入当前方法体内

    • F7 进 入下一步,如果当前行断点是一个方法,则进 入当前方法体内,如果该方法体还有方法,则不会进 入该内嵌的方法中

    • ⇧F7 智能步入,断点所在行上有多个方法调用,会弹出进 入哪个方法

    • ⇧F8 跳出

    • ⌥F9 运行到光标处,如果光标前有其他断点会进 入到该断点

    • ⌥F8 计算表达式(可以更改变量值使其生效)

    • ⌘⌥R 恢复程序运行,如果该断点下面代码还有断点则停在下一个断点上

    • ⌘F8 切换断点(若光标当前行有断点则取消断点,没有则加上断点)

    • ⌘⇧F8 查看断点信息

     

    六、Navigation(导航)

    • ⌘O 查找类文件

    • ⌘⇧O 查找所有类型文件、打开文件、打开目录,打开目录需要在输入的内容前面或后面加一个反斜杠/

    • ⌘⌥O 前往指定的变量 / 方法

    • ⌃← / ⌃→ 左右切换打开的编辑tab页

    • F12 返回到前一个工具窗口

    • ⎋ 从工具窗口进 入代码文件窗口

    • ⇧⎋ 隐藏当前或最后一个活动的窗口,且光标进 入代码文件窗口

    • ⌘⇧F4 关闭活动run/messages/find/... tab

    • ⌘L 在当前文件跳转到某一行的指定处

    • ⌘E 显示最近打开的文件记录列表

    • ⌘⌥← / ⌘⌥→ 退回 / 前进到上一个操作的地方

    • ⌘⇧⌫ 跳转到最后一个编辑的地方

    • ⌥F1 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择(如在代码编辑窗口可以选择显示该文件的Finder)

    • ⌘B / ⌘ 鼠标点击 进 入光标所在的方法/变量的接口或是定义处

    • ⌘⌥B 跳转到实现处,在某个调用的方法名上使用会跳到具体的实现处,可以跳过接口

    • ⌥ Space, ⌘Y 快速打开光标所在方法、类的定义

    • ⌃⇧B 跳转到类型声明处

    • ⌘U 前往当前光标所在方法的父类的方法 / 接口定义

    • ⌃↓ / ⌃↑ 当前光标跳转到当前文件的前一个/后一个方法名位置

    • ⌘] / ⌘[ 移动光标到当前所在代码的花括号开始/结束位置

    • ⌘F12 弹出当前文件结构层,可以在弹出的层上直接输入进行筛选(可用于搜索类中的方法)

    • ⌃H 显示当前类的层次结构

    • ⌘⇧H 显示方法层次结构

    • ⌃⌥H 显示调用层次结构

    • F2 / ⇧F2 跳转到下一个/上一个突出错误或警告的位置

    • F4 / ⌘↓ 编辑/查看代码源

    • ⌥ Home 显示到当前文件的导航条

    • F3选中文件/文件夹/代码行,添加/取消书签

    • ⌥F3 选中文件/文件夹/代码行,使用助记符添加/取消书签

    • ⌃0...⌃9 定位到对应数值的书签位置

    • ⌘F3 显示所有书签

     

    七、Refactoring(重构)

    • F5 复制文件到指定目录

    • F6 移动文件到指定目录

    • ⌘⌫ 在文件上为安全删除文件,弹出确认框

    • ⇧F6 重命名文件

    • ⌘F6 更改签名

    • ⌘⌥N 一致性

    • ⌘⌥M 将选中的代码提取为方法

    • ⌘⌥V 提取变量

    • ⌘⌥F 提取字段

    • ⌘⌥C 提取常量

    • ⌘⌥P 提取参数

     

    八、VCS/Local History(版本控制/本地历史记录)

    • ⌘K 提交代码到版本控制器

    • ⌘T 从版本控制器更新代码

    • ⌥⇧C 查看最近的变更记录

    • ⌃C 快速弹出版本控制器操作面板

    九、Live Templates(动态代码模板)

    • ⌘⌥J 弹出模板选择窗口,将选定的代码使用动态模板包住

    • ⌘J 插入自定义动态代码模板

     

    十、General(通用)

    • ⌘1...⌘9 打开相应编号的工具窗口

    • ⌘S 保存所有

    • ⌘⌥Y 同步、刷新

    • ⌃⌘F 切换全屏模式

    • ⌘⇧F12 切换最大化编辑器

    • ⌥⇧F 添加到收藏夹

    • ⌥⇧I 检查当前文件与当前的配置文件

    • §⌃, ⌃` 快速切换当前的scheme(切换主题、代码样式等)

    • ⌘, 打开IDEA系统设置

    • ⌘; 打开项目结构对话框

    • ⇧⌘A 查找动作(可设置相关选项)

    • ⌃⇥ 编辑窗口标签和工具窗口之间切换(如果在切换的过程加按上delete,则是关闭对应选中的窗口)

     

    十一、Other(一些官方文档上没有体现的快捷键)

    • ⌘⇧8 竖编辑模式

    导航

    • ⌘O 查找类文件 Ctrl + N

    • ⌘⌥O 前往指定的变量 / 方法 Ctrl + Shift + Alt + N

    • ⌃← / ⌃→ 左右切换打开的编辑tab页 Alt← / Alt→

    • ⎋ 从工具窗口进 入代码文件窗口 ESC

    • ⌘L 在当前文件跳转到某一行的指定处 Ctrl + G

    • ⌘E 显示最近打开的文件记录列表 Ctrl + E

    • ⌘⌥← / ⌘⌥→ 退回 / 前进到上一个操作的地方 Ctrl + Alt + ← Ctrl + Alt + →

    • ⌘⇧⌫ 跳转到最后一个编辑的地方

    • ⌃H 显示当前类的层次结构 Ctrl + H

    • ⌘⇧H 显示方法层次结构

    • ⌃⌥H 显示调用层次结构

    • F4 / ⌘↓ 编辑/查看代码源

    • ⌘⌥U 显示类UML图

    • ⌃J 查看注释

    编辑

    • ⌥⌦ 删除到单词的末尾(⌦键为Fn+Delete)

    • ⌥⌫ 删除到单词的开头

    • ⌘+ / ⌘- 展开 / 折叠代码块

    • ⌘F1 在错误或警告处显示具体描述信息

    • ⌘⌥L 格式化代码

    • ⌃⌥O 优化import

    • ⇧↩ 开始新的一行

    • ⌘⇧↩ 自动结束代码,行末自动添加分号

    • ⌃I 实现方法(实现接口中的方法)

    • ⇧F6 重命名文件或者变量

    • ⌘N, ⌃↩, ⌃N 生成代码(getter、setter、构造函数、hashCode/equals,toString)

    • ⌘P 显示方法的参数信息

    查找

    • Double⇧ 查找任何东西

    • ⌘⇧F 全局查找(根据路径)

    • ⌘F 文件内查找

    • ⌘G 查找模式下,向下查找

    • ⌘⇧G 查找模式下,向上查找

    • ⌘⌥B 跳转到接口的实现
    • ⌘U 查看接口定义
    • ⌘⌥← / ⌘⌥→ 退回 / 前进到上一个操作的地方
    • ⌘B / ⌘ 鼠标点击 进 入光标所在的方法/变量的接口或是定义处
    • ⌃⇧B 跳转到类型声明处
    • ⌥ Space, ⌘Y 快速打开光标所在方法、类的定义
    • ⌘O 查找类文件
    • ⌘⇧O 查找所有类型文件、打开文件、打开目录,打开目录需要在输入的内容前面或后面加一个反斜杠/
    • F12 返回到前一个工具窗口
    • ⎋ 从工具窗口进 入代码文件窗口
    • ⇧⎋ 隐藏当前或最后一个活动的窗口,且光标进 入代码文件窗口
    • F3选中文件/文件夹/代码行,添加/取消书签
    • ⌥F3 选中文件/文件夹/代码行,使用助记符添加/取消书签
    • ⌃0…⌃9 定位到对应数值的书签位置
    • ⌘F3 显示所有书签
    • ⌥F1 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择(如在代码编辑窗口可以选择显示该文件的Finder)
    • ⌘F12 弹出当前文件结构层,可以在弹出的层上直接输入进行筛选(可用于搜索类中的方法)

    导航

    • ⌘⌥B 跳转到接口的实现

    • ⌘U 查看接口定义

    • ⌘⌥← / ⌘⌥→ 退回 / 前进到上一个操作的地方

    • ⌘B / ⌘ 鼠标点击 进 入光标所在的方法/变量的接口或是定义处

    • ⌃⇧B 跳转到类型声明处

    • ⌥ Space, ⌘Y 快速打开光标所在方法、类的定义

    • ⌘O 查找类文件

    • ⌘⇧O 查找所有类型文件、打开文件、打开目录,打开目录需要在输入的内容前面或后面加一个反斜杠/

    • F12 返回到前一个工具窗口

    • ⎋ 从工具窗口进 入代码文件窗口

    • ⇧⎋ 隐藏当前或最后一个活动的窗口,且光标进 入代码文件窗口

    • F3选中文件/文件夹/代码行,添加/取消书签

    • ⌥F3 选中文件/文件夹/代码行,使用助记符添加/取消书签

    • ⌃0…⌃9 定位到对应数值的书签位置

    • ⌘F3 显示所有书签

    • ⌥F1 显示当前文件选择目标弹出层,弹出层中有很多目标可以进行选择(如在代码编辑窗口可以选择显示该文件的Finder)

    • ⌘F12 弹出当前文件结构层,可以在弹出的层上直接输入进行筛选(可用于搜索类中的方法)

    通用

    • ⌃⌘F 切换全屏模式

    展开全文
  • ieeetranHow to install install the IEEEtran BibTex style in Fedora? 如何在Fedora中安装安装IEEEtran BibTex 样式 ? IEEEtran.bst is the official BibTeX style for authors of the Institute of Electrical ...

    ieeetran

    How to install install the IEEEtran BibTex style in Fedora?

    如何在Fedora中安装安装IEEEtran BibTex 样式

    IEEEtran.bst is the official BibTeX style for authors of the Institute of Electrical and Electronics Engineers (IEEE) Transactions journals and conferences.

    IEEEtran.bst是官方的BibTeX样式,适用于电气电子工程师协会(IEEE)Transactions期刊和会议的作者。

    http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/bibtex/

    http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/bibtex/

    How to install it on Fedora 17:

    如何在Fedora 17上安装它:

    # yum install tetex-IEEEtran

    An example of using it:

    一个使用它的例子:

    bibliographystyle{IEEEtran}
    bibliography{IEEEabrv,ref}
    Answered by SA.
    由SA回答。

    翻译自: https://www.systutorials.com/ieeetran-bibtex-style/

    ieeetran

    展开全文
  • Tran-crx插件

    2021-04-04 08:52:20
    用Multirtran Service(和土耳其语)翻译单词(土耳其语) 谢谢大家使用这个应用程序,如果有问题,您可以邮寄给我: jhnner+tran@gmail.com。 P.S. 捐款非常欢迎:P https://www.paypal.me/johnner/
  • 1.sqlserver中事务总结:begin tran,rollback tran,commit tran 第1个相关用法:摘自:https://shiyousan.com/post/f13d29b7-0d87-4168-bd8b-8b28b0991b5a 以下是出现错误的SQL部分语句: 此错误的原因是由于...

    一、sqlserver数据库相关知识:

    1.sqlserver中事务总结:begin tran,rollback tran,commit tran 

    第1个相关用法:摘自:https://shiyousan.com/post/f13d29b7-0d87-4168-bd8b-8b28b0991b5a

    以下是出现错误的SQL部分语句:

     

    此错误的原因是由于一个事务只能对应一个操作,要么回滚要么提交,所以执行了ROLLBACK TRAN语句后一定不能再执行COMMIT TRAN语句!!!而无论是回滚事务还是提交事务,都是不会中断SQL处理流程的,要想中断流程就需要使用RETURN语句。

    上面范例中的语句先执行了ROLLBACK TRAN回滚操作(这里造成事务已经处理完成),但是并没有中断流程,所以后面的语句依然会继续执行。执行过程中由于没有任何异常错误,最终导致重复执行了底部的COMMIT TRAN事务提交操作,最后一次事务操作没有找到相匹配的事务声明,就会提示"COMMIT TRANSACTION(事务提交) 请求没有对应的 BEGIN TRANSACTION(事务声明)"这个错误。

    所以要跳出事务,在进行回滚ROLLBACK操作后,还必须马上使用RETURN语句跳出执行流程。以下为修改后的语句:

    这里在做一个简单测试,有助于理解所谓的一个事务只能对应一个事务操作的意思,在SQL中输入下图的三行代码并执行:

    总结: roolback 之后不能再次commit,事务只能开启一个!!!

     

    第2个用法总结:https://www.cnblogs.com/accumulater/p/6089822.html

     

    SQL事务用法begin tran,commit tran和rollback tran的用法

     

    Sql Server 2005/2008中提供了begin tran,commit tran和rollback tran来使用事务。

    begin tran表示开始事务,

    commit tran表示提交事务,

    rollback tran表示回滚事物

     

     EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门' 
    CREATE PROCEDURE [dbo].[TEST_PROC] 
    @A_Name NVARCHAR(20), -- A表姓名 
    @A_Remark NVARCHAR(4000), -- A表备注 
    @B_Name NVARCHAR(20), -- B表姓名 
    @B_Remark NVARCHAR(4000) -- B表备注 
    AS 
    BEGIN TRY 
    BEGIN TRAN 
    -- 在A表中插入数据 
    INSERT INTO [dbo].[A] 
    ( [A_Name] 
    , [A_Remark] ) 
    VALUES 
    ( @A_Name 
    , @A_Remark ) 
    -- 在B表中插入数据 
    INSERT INTO [dbo].[B] 
    ( [A_ID] 
    , [B_Name] 
    , [B_Remark] ) 
    VALUES 
    ( @@IDENTITY -- 返回最后插入的标识值 
    , @B_Name 
    , @B_Remark ) 
    COMMIT TRAN 
    END TRY 
    BEGIN CATCH 
    ROLLBACK TRAN 
    INSERT INTO [dbo].[ErrorLog] 
    ( [EL_Procedure] -- 异常存储过程名称 
    , [EL_OperateTime] ) -- 报异常时间 
    VALUES 
    ( 'TEST_PROC' 
    , CONVERT(DATETIME,GETDATE(),20) ) 
    END CATCH 

     

    注:1. @@IDENTITY的作用是返回最后插入的标识值。 
    2. 我在rollback tran中加入一个专门记录异常的表,以便产于异常发生的时间和确定报异常的存储过程的名称。 
    原文链接: 
    begin tran 可以理解成新建一个还原点。 
    commit tran提交这个自begin tran开始的修改 
    rollback tran 表示还原到上个还原点

     

     

     

     二、IndexedDB知识点总结:

    转自:https://blog.csdn.net/ffj0721/article/details/80984591

     

    indexedDB简介

    indexedDB是一个前端存储数据库,之前也没有什么了解,这次项目中需要用到,然后就去找了相关资料。数据库有两种,一种是关系型数据库,另一种是非关系型数据库。indexedDB是第二种,它是非关系型数据库,它不需要你去写一些特定的sql语句来对数据库进行操作,数据形式使用的是json。

    与其他前端存储方式对比

    >
    也许熟悉前端存储的会说,不是有了LocalStorage和Cookies吗?为什么还要推出indexedDB呢?其实对于在浏览器里存储数据,你可以使用cookies或local storage,但它们都是比较简单的技术,而IndexedDB提供了类似数据库风格的数据存储和使用方式。

    首先说说Cookies,英文直接翻译过来就是小甜点,听起来很好吃,实际上并不是,每次HTTP接受和发送都会传递Cookies数据,它会占用额外的流量。例如,如果你有一个10KB的Cookies数据,发送10次请求,那么,总计就会有100KB的数据在网络上传输。Cookies只能是字符串。浏览器里存储Cookies的空间有限,很多用户禁止浏览器使用Cookies。所以,Cookies只能用来存储小量的非关键的数据。
    其次说说LocalStorage,LocalStorage是用key-value键值模式存储数据,但跟IndexedDB不一样的是,它的数据并不是按对象形式存储。它存储的数据都是字符串形式。如果你想让LocalStorage存储对象,你需要借助JSON.stringify()能将对象变成字符串形式,再用JSON.parse()将字符串还原成对象。但如果要存储大量的复杂的数据,这并不是一种很好的方案。毕竟,localstorage就是专门为小数量数据设计的,所以它的api设计为同步的。而IndexedDB很适合存储大量数据,它的API是异步调用的。IndexedDB使用索引存储数据,各种数据库操作放在事务中执行。IndexedDB甚至还支持简单的数据类型。IndexedDB比localstorage强大得多,但它的API也相对复杂。对于简单的数据,你应该继续使用localstorage,但当你希望存储大量数据时,IndexedDB会明显的更适合,IndexedDB能提供你更为复杂的查询数据的方式。

     

    indexedDB特性

    对象仓库
    indexedDB中没有表的概念,而是objectStore,一个数据库中可以包含多个objectStore,objectStore是一个灵活的数据结构,可以存放多种类型数据。也就是说一个objectStore相当于一张表,里面存储的每条数据和一个键相关联。我们可以使用每条记录中的某个指定字段作为键值(keyPath),也可以使用自动生成的递增数字作为键值(keyGenerator),也可以不指定。选择键的类型不同,objectStore可以存储的数据结构也有差异。
    键类型 存储数据
    不使用 任意值,但是每添加一条数据的时候,需指定键参数
    keyPath 对象,eg: {keyPath: ‘id’}
    keyGenerator 任意值 eg: {autoincrement: true}
    keyPath and KeyGenerator 都使用 对象,如果对象中有keyPath指定的属性则不生成新的键值,如果没有自动生成递增键值,填充keyPath指定的属性
    事务性
    在indexedDB中,每一个对数据库操作是在一个事务的上下文中执行的。事务范围一次影响一个或多个object stores,你通过传入一个object store名字的数组到创建事务范围的函数来定义。例如:db.transaction(storeName, ‘readwrite’),创建事务的第二个参数是事务模式。当请求一个事务时,必须决定是按照只读还是读写模式请求访问。

    基于请求
    对indexedDB数据库的每次操作,描述为通过一个请求打开数据库,访问一个object store,再继续。IndexedDB API天生是基于请求的,这也是API异步本性指示。对于你在数据库执行的每次操作,你必须首先为这个操作创建一个请求。当请求完成,你可以响应由请求结果产生的事件和错误。

    异步
    在IndexedDB大部分操作并不是我们常用的调用方法,返回结果的模式,而是请求—响应的模式,所谓异步API是指并不是这条指令执行完毕,我们就可以使用request.result来获取indexedDB对象了,就像使用ajax一样,语句执行完并不代表已经获取到了对象,所以我们一般在其回调函数中处理。

    使用示例

    打开数据库

    判断浏览器是否支持indexedDB数据库
    var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.msIndexedDB;
    if(!indexedDB)
    {
    console.log("你的浏览器不支持IndexedDB");
    }
    1
    2
    3
    4
    5
    创建请求打开indexedDB,IndexedDB需要你创建一个请求来打开它。
    var request = indexedDB.open(name, version);
    1
    第一个参数是数据库的名称,第二个参数是数据库的版本号。版本号可以在升级数据库时用来调整数据库结构和数据。但你增加数据库版本号时,会触发onupgradeneeded事件,这时可能会出现成功、失败和阻止事件三种情况:

    request.onerror = function(e) { // 失败
    console.log(e.currentTarget.error.message);
    };

    request.onsuccess = function(e) { // 成功
    myDB.db = e.target.result;
    console.log('成功打开DB');
    };

    request.onupgradeneeded = function(e) {
    var db = e.target.result;
    if (!db.objectStoreNames.contains('person')) {
    console.log("我需要创建一个新的存储对象");
    //如果表格不存在,创建一个新的表格(keyPath,主键 ; autoIncrement,是否自增),会返回一个对象(objectStore)
    var objectStore = db.createObjectStore('person', {
    keyPath: "id",
    autoIncrement: true
    });

    //指定可以被索引的字段,unique字段是否唯一

    objectStore.createIndex("name", "name", {
    unique: false
    });

    objectStore.createIndex("phone", "phone", {
    unique: false
    });

    }
    console.log('数据库版本更改为: ' + version);
    };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    onupgradeneeded事件在第一次打开页面初始化数据库时会被调用,或在当有版本号变化时。所以,你应该在onupgradeneeded函数里创建你的存储数据。如果没有版本号变化,而且页面之前被打开过,你会获得一个onsuccess事件。

    添加数据

    创建一个事务,并要求具有读写权限
    var transaction = db.transaction(storeName, 'readwrite');
    1
    获取objectStore,调用add方法添加数据
    var store = transaction.objectStore(storeName); //访问事务中的objectStore
    data.forEach(function (item) {
    store.add(item);//保存数据
    });
    1
    2
    3
    4
    删除数据

    创建事务,然后调用删除接口,通过key删除对象
    var transaction = db.transaction(storeName, 'readwrite');

    var store = transaction.objectStore(storeName);

    store.delete(key);
    1
    2
    3
    4
    5
    查找数据

    按key查找 开启事务,获取objectStore,调用往get()方法,往方法里传入对象的key值,取出相应的对象
    var transaction = db.transaction(storeName, 'readwrite');

    var store = transaction.objectStore(storeName);

    var request = store.get(key);

    request.onsuccess = function(e) {

    data = e.target.result;

    console.log(student.name);

    };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    使用索引查找
    var transaction = db.transaction(storeName);

    var store = transaction.objectStore(storeName);

    var index = store.index(search_index);

    index.get(value).onsuccess = function(e) {

    data = e.target.result;

    console.log(student.id);

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    游标遍历数据
    var transaction = db.transaction(storeName);

    var store = transaction.objectStore(storeName);

    var request = store.openCursor();//打开游标

    var dataList = new Array();

    var i = 0;

    request.onsuccess = function(e) {

    var cursor = e.target.result;

    if (cursor) {

    console.log(cursor.key);

    dataList[i] = cursor.value;

    console.log(dataList[i].name);

    i++;

    cursor.continue();

    }

    data = dataList;

    };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    更新对象

    更新对象,首先要把它取出来,修改,然后再放回去。
    1
    var transaction = db.transaction(storeName, 'readwrite');

    var store = transaction.objectStore(storeName);

    var request = store.get(key);

    request.onsuccess = function(e) {

    var data = e.target.result;

    for (a in newData) {

    //除了keypath之外

     

    data.a = newData.a;

    }

    store.put(data);

    };
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    关闭与删除数据库

    关闭数据库可以直接调用数据库对象的close方法
    1
    function closeDB(db) {

    db.close();

    }
    1
    2
    3
    4
    5
    删除数据库使用数据库对象的deleteDatabase方法
    1
    function deleteDB(name) {

    indexedDB.deleteDatabase(name);

    }

    转载于:https://www.cnblogs.com/newcapecjmc/p/10240900.html

    展开全文
  • 在使用chrome阅读网页的时候,经常会遇到一些陌生的外文单词或者语句不熟悉,如果打开外部的翻译软件进行翻译就太麻烦了,今天给大家推荐一款直接在chrome中直接翻译的谷歌浏览器插件,支持划词翻译,支持多种多种...
  • 针对于IEEEtran类模板,其初始模板给定了6个示例作者,如下: 那如果是5个作者的话,怎么排版呢?\textcolor{red}{那如果是5个作者的话,怎么排版呢?}那如果是5个作者的话,怎么排版呢? 如果是简单的删掉一个作者...
  • 本文来自于LATEX学习和IEEE Tran模板介绍
  • ru_tran_accelerator-源码

    2021-04-23 05:38:01
    #ru_tran_accelerator Sill the Spire mod的俄文翻译,由Villfuk02称为TheAccelerator THEAccelerator MOD需要一个与现代版《杀尖塔》兼容的MOD: ://steamcommunity.com/sharedfiles/filedetails/?id=2025014867 ...
  • 本文实现的方式大部分源码是从借鉴别人的博客,再他们的基础上修复了不能翻译的问题和其他的一些bug。但是原文找不到了,没法粘贴原文地址了,非常抱歉。 本文章解决的问题有: 翻译不来,在之前基础上对需要翻译...
  • 进入到“对象类型选择”画面,依次点开“A5用户界面文本”-“TRAN事务”。 输入“对象名称”(即事务代码名称),选择正确的源语言和目标语言,回车(或者点击“编辑”按钮)进入进行维护,维护完成后记得需要保存...
  • batch-google-tran-源码

    2021-04-27 20:23:36
    批量谷歌翻译 step 1 go get -u github.com/gobuffalo/packr/packr step 2 make 运行截图
  • simscape_gs_tran.pdf

    2021-02-01 00:05:47
    Simscape官方文件,自己WPS翻译短句的,可能不是很准,看懂没有问题的
  • Python制作翻译软件(中英文互译)

    千次阅读 2019-03-29 14:38:28
    本案例非常简单有趣,使用Python Tkinter模块结合有道翻译API实现中英文互译,效果如下: 感兴趣的小伙伴可以参阅有道翻译API:http://ai.youdao.com/?keyfrom=fanyi-new-nav 参考Demo如下: from tkinter ...
  • 使用函数 ugettext() 来指定一个翻译字符串。 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间. 在下面这个例子中,文本 “Welcome to my site” 被标记为待翻译字符串: ...from django.utils.tran
  • Learn Prolog Now 翻译 - 第四章 - 列表 - 第四节,练习题和答案 练习题4.1 Prolog将会如何回答下面的查询? 1. [a, b, c, d] = [a, [b, c, d]]. 2. [a, b, c, d] = [...
  • 复制代码 代码如下:#!/usr/bin/env python3# -*- coding: utf-8 -*-# File Name : gt1.py# Purpose :# Creation Date : 1390366260# Last Modified : Wed 22 Jan 2014 06:14:11 PM CST# Release By : Doom.zhou ...
  • /p [2]/span") c=b.text#提取翻译结果 driver.quit()#关闭浏览器 print("翻译结果") print(c) with open ("翻译结果.txt","a")as f: f.write(tran) f.write(" ") f.write(c) f.write("\n") print("输入内容写入...
  • 神经机器翻译的Subword技术

    千次阅读 2021-03-13 09:02:28
    神经网络机器翻译(NMT)是目前最先进的机器翻译技术,通过神经网络的处理可以产生流畅的翻译。然而非机器翻译模型受到词汇外问题和罕见词问题的影响,导致翻译质量下降。OOV词是语料库中未出现的词,而rare词是语料库...
  • 翻译整数的机器人 机器人的特征 姓名 型号 整数:待翻译的整数 翻译的英文句子字符串:字符指针,句子有长有短 … 机器人的功能 翻译整数函数: 形成英文字符串,并将字符串指针返回 例如128翻译成one hundred...
  • reload(sys)sys.setdefaultencoding(‘utf-8’)def tran(word): url=’http://dict.baidu.com/s?wd={0}&tn=dict’.format(word) print url req=urllib2.Request(url) resp=urllib2.urlopen(req) resphtml=resp....
  • /p [2]/span") c=b.text#提取翻译结果 driver.quit()#关闭浏览器 print("翻译结果") print(c) with open ("翻译结果.txt","a")as f: f.write(tran) f.write(" ") f.write(c) f.write("\n") print("输入内容写入...
  • php-google-translate-free, PHP类用于免费使用谷歌翻译 API PHP GoogleTranslate免费 简单的PHP库,用于免费地翻译谷歌 API 。安装通过 Composer 安装这个软件包。composer require statickidz/php-google-tran
  • 翻译整数的机器人 机器人的特征 姓名 型号 …… 机器人的功能 翻译整数函数: 例如128翻译成one hundred and twenty-eight 构造函数 设置函数 析构函数 …… 机器人 类的定义 class robot { private: ...
  • DocTranslate是一款免费的翻译软件,主要用于翻译Doc和Ppt文档,把word的doc文档或者power-point文档通过,google翻译翻译为另外一种语言,非常方便,需要的朋友可以下载!
  • Python中英文翻译工具

    千次阅读 2019-09-12 11:18:11
    tran = trans[‘translateResult’][0][0][‘tgt’] button = Button(root, text=‘翻译’, width=‘10’, command=translate) button.grid(row=2, column=0, sticky=W) exit_button = Button(root, text=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,278
精华内容 911
关键字:

tran翻译