- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
<小时/>I am very new to the concept of object oriented databases and I honestly don't have much experience with relational databases either.
我正在尝试使用indexedDB来存储一些数据客户端,但在我进入它之前。我需要决定一个合适的模式。
我需要满足以下用例:
目前,我计划将数据库中的每个网址设为自己的字典键。
例如:
[ youtube.com:{ {command:"bold", open:"*", close:"*" },
{command:"italic", open:"_", close:"_" },
...
},
StackOverflow.com: { {command:"strong", open:"<strong>", close:"</strong>" },
.....
},
.......
.......
]
任何人都可以指出这种方法的缺陷/建议替代方案并给出解释吗?
出于性能原因,我最终可能会将最内部的字典更改为数组,但我在这里寻求有关一般模式的建议,而不是在那个小点上。尽管如此,对此的建议也将不胜感激。
现在我对 keyGen 和索引有了更多的了解,我认为肯定有更好的方法来做到这一点。也许我可以将命令名称本身设置为 keyPath ,并让该键中的每个对象都包含一组标签和使用该组标签的 url 数组。
额外问题:如果有人碰巧知道一种方法,可以在访问网站时动态(实用地)检测网站使用的 Markdown 标签(如果使用任何标签),那么我将奖励您 9001 独 Angular 兽美元。
最佳答案
快速猜测是一个单一的对象存储,您可以在其中存储具有两个属性的对象:url 和标签。鉴于每个对象都由 URL 唯一标识,因此 url 属性将是键路径。 Tags 属性将是一个可变长度的字符串数组。然后您可以拥有其他属性,但这些将是两个重要的属性。
然后,您可以在标记属性上创建索引,并设置多条目标志以启用按标记查询页面。
例如,在 onupgradeneeded 中,使用:
function onUpgradeNeeded(event) {
var db = event.target.result;
var pageStore = db.createObjectStore('pages', {keyPath: 'url'});
pageStore.createIndex('tagIndex', 'tags', {multiEntry: true});
}
例如,将一个对象放入存储中:
function insertPage(db, page, callback) {
var tx = db.transaction('pages','readwrite');
tx.oncomplete = callback;
var pageStore = tx.objectStore('pages');
pageStore.put(page);
}
var openRequest = indexedDB.open(...);
openRequest.onupgradeneeded = onUpgradeNeeded;
openRequest.onsuccess = function(event) {
var db = event.target.result;
var mockPage = {
url: 'http://www.stackoverflow.com',
tags: ['bold','comment','italics'],
foo: bar
};
putPage(db, mockPage, function(event) {
console.log('Completed putting %o into pages object store', mockPage);
});
}
通过url查询:
function findPageByURLThenHandle(db, url, callback, fallback) {
var tx = db.transaction('pages','readonly');
var pageStore = tx.objectStore('pages');
var request = pageStore.get(url);
request.onsuccess = function(event) {
var page = event.target.result;
if(page) {
callback(page);
} else {
fallback(url);
}
};
}
var openRequest = indexedDB.open(...);
openRequest.onsuccess = function(event) {
var queryURL = 'http://www.stackoverflow.com';
var db = event.target.result;
findPageByURLThenHandle(db, queryURL, function(page) {
console.log('Found %o for %s', page, queryURL);
}, function(url) {
console.log('Could not find page for url %s', url);
});
};
要查找具有给定标签的所有页面:
function handlePagesForTag(db, tag, callback) {
var tx = db.transaction('pages','readonly');
var pageStore = tx.objectStore('pages');
var tagIndex = pageStore.index('tagIndex');
var request = tagIndex.openCursor(tag);
request.onsuccess = function(event) {
var cursor = event.target.result;
if(!cursor) return;
var page = cursor.value;
callback(page);
cursor.continue();
};
}
希望可以帮助您入门。
关于javascript - IndexedDB:将 url 映射到接受的 Markdown/HTML 文本格式标记的正确架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988595/
这是我的代码片段:http://www.share-elm.com/sprout/53d242e2e4b07afa6f9834a2灵感来自 elm-lang.org 的 example . main
抱歉,如果这个问题有点基础,但互联网上的研究并没有得出任何合理的答案。我希望能够在我的网站上运行 markdown,类似于 github 所拥有的(编辑/预览设置)或实际上与 stackoverflo
我正在使用 markdown 编写文档,我正在使用 pandoc 将其导出为 PDF。在文档的末尾,我需要在 PDF 的打印副本上留出签名空间。 我试图找到如何绘制一条固定宽度的线,但到目前为止我只需
我已经搜索过谷歌和 SO,不知道 SO 是否是问这个的地方,但我想知道是否有标记可以为 Markdown 做某种类型的注释?我们在 Markdown 中为我们的项目做文档,并希望在不更改内容的情况下在
我想使用简单的文本编辑器和 Markdown 做类笔记。有没有办法标记文本元素以使其机器可读? 例如,我想将某些单词和短语标记为“定义”。然后,我可以运行某种脚本来显示单词及其相应的定义。 最佳答案
我有两个markdown文件:一个parent.md和child.md。 所以parent.md: # Main section ## sub-section 我想引用## sub-section中的
我需要在 Markdown 中创建一个类似嵌套的表,如下所示: 我怎样才能做到这一点? 最佳答案 @Waylan 是对的,您可以将 HTML(例如使用 Markdown 生成的表格)粘贴到 Markd
有没有办法在 Github markdown 的代码片段中链接表单? 例如:`I want THIS to be a link`哪里THIS看起来像 THIS . 最佳答案 我想通过 Markdown
我正在 Github 风格的 Markdown 中整理一些文档,并且我想整理一个有两行的表格。一种是简单的文本,另一种是 json 代码块。这是一个例子。 | Status | Response |
使用 GitHub 上“Markdown Cheatsheet ”中的表示例,您会得到以下结果: | Tables | Are | Cool | | -------
我对 Markdown 中的引号有疑问。当我有这样的事情时: text > quoted text > > deeper layer > > > even deeper
我正在寻找与 Markdown 中的多行代码功能等效的引号。对于代码块我可以方便地编写: ``` this is a code example ``` 有谁知道下面的事情是否可能? >>>
我想在 Markdown 中创建一个列表,但没有项目符号点。这可能吗? 到目前为止,我发现唯一推荐的方法是使用 HTML,我想避免使用 HTML。 最佳答案 这听起来似乎很明显,但是......您可以
我想编写一份编码标准规范文档,其中包含好和坏编码示例。每条规则都应该有一个编号、描述和示例。 例如,这是规则 1: # Rule 1 Description for rule 1. ## Good `
可以关注Marked library documentation并内联渲染一个 Markdown 字符串。这是一个有效的代码片段。 document.getElementById
据我所知,markdown 是 html 的“简化”版本。它易于使用和阅读。但我在创建输入表单时遇到了问题。 有人可以建议是否有任何方法可以在 Markdown 中添加 html 输入表单元素吗?我搜
如何在 Markdown 解析文档中包含小书签?是否有任何 Markdown 的“标签”基本上是说“不要解析这个”?? 例如,您可以有类似的内容: Hello 但是如果我尝试将其中的 JavaScri
可以关注Marked library documentation并内联渲染一个 Markdown 字符串。这是一个有效的代码片段。 document.getElementById
我想编写一个 R Markdown 文档,其中提供了如何编写 R Markdown 文档的代码示例。例如,我想在文档中展示如何将文本呈现为粗体。 `**this is bold**` will ren
我目前正在使用 GitHub 页面构建一个网站,并尝试利用一些 GitHub 风格的 Markdown 功能。特别隔离的代码块和表。 使用 redcarpet,我得到语法突出显示的围栏 block ,
我是一名优秀的程序员,十分优秀!