我目前正在开发一个将使用HTML5的localStorage的网站.我已经阅读了有关不同浏览器的大小限制的所有内容.但是,我还没有看到任何关于如何找出localStorage实例的当前大小的内容.这个问题似乎表明JavaScript没有内置的方式来显示给定变量的大小.localStorage是否有我没见过的内存大小属性?有没有一种简单的方法可以做到这一点,我错过了?
我的网站旨在允许用户以"离线"模式输入信息,因此当存储空间几乎已满时能够向他们发出警告非常重要.
以前,当我需要存储一些相关变量时,我会创建一个类.
function Item(id, speaker, country) {
this.id = id;
this.speaker = spkr;
this.country = country;
}
var myItems = [
new Item(1, 'john', 'au'),
new Item(2, 'mary', 'us')
];
Run Code Online (Sandbox Code Playgroud)
但我想知道这是不是一个好习惯.还有其他更好的方法来模拟Javascript中的结构吗?
删除操作符的行为似乎非常复杂,并且对它实际执行的操作存在许多误解.对我而言,似乎重新分配某些内容undefined
会更可靠地完成您的期望.
我从未delete
在非实例代码中看到Javascript中实际使用的关键字,我想知道它是否对任何东西特别有用.是否delete
有任何通过重新分配无法实现的目的undefined
?它是否在任何着名的库中使用(例如jQuery,dojo,backbone等)?
发生在我身上的一个问题是,javascript中的不同数据类型有多少内存使用.例如,在C++数据类型中,如int,char,float使用2,1,8字节的内存顺序.现在数据类型像数字,字符串,布尔值,空,undefind和对象,javascript中的数组使用多少内存以及接受的范围是多少?接受我的道歉,因为我的英语水平低!
我的应用程序的一部分包括使用标准的2d上下文画布和webGL的混合的html5照片编辑.
无论如何,当用户操纵他们的照片时,我正在保存"撤消"状态.这些都作为base64图像数据存储在Javascript对象中.
一切都很好,性能也很好.
但是我想知道从getImageData存储数据是否会占用更少的内存或提供更好的性能?
总结一下我的问题是:
这需要更多的内存空间,toDataURL()生成的base64 jpeg或getImageData()的结果?两者之间是否有任何性能差异(关于加载到画布上,以及从画布中提取数据)
提前致谢.
我有一个Javascript对象,我试图用作"hashmap".键总是字符串,所以我认为我不需要像SO问题中描述的那样复杂的东西.(我也不希望密钥的数量超过10,所以我并不特别关注查找是O(n)与O(log n)等.)
我想要的内置Javascript对象似乎没有的唯一功能,是一种快速的方法来计算对象中的键/值对的数量,就像Java的Map.size返回的那样.当然,你可以这样做:
function getObjectSize(myObject) {
var count=0
for (var key in myObject)
count++
return count
}
Run Code Online (Sandbox Code Playgroud)
但这似乎有点hacky和迂回.是否有"正确的方法"来获取对象中的字段数量?
我在Javascript中有一个包含很多子数组的数组.计算数组保持多少位/字节的最佳/最简单方法是什么?我要将数组发送到我的PHP服务器,它只能是5kB大.
是否有本地方法?我不是很熟悉比特.如果我理解正确1个字符适合8b/1B(虽然它明显取决于编码).最好的方法是循环遍历所有数组并计算字符数吗?
有没有办法找到多少尺寸的状态(对象,数组等)或组件的内存占用。
在我当前的上下文中,我需要知道特定状态/组件是否非常重(就内存而言)。
在 chrome 中,我已经尝试过对内存进行快照,但是在这样的大信息中,我找不到如何在结果中识别特定组件或状态:
memory-management memory-profiling vue.js vuex vue-profiling
可能重复:
JavaScript对象大小
如何衡量内存使用情况和效率?
我猜答案可能是"你不能",但有没有办法看到在DOM/javascript环境中为每个对象分配了多少内存?有哪些工具,从浏览器到浏览器有什么不同?
如果答案确实是"你不能",任何人都可以解释为什么不呢?
有没有办法找出scala中对象占用的内存/大小?预先感谢您回复我。
我正在使用 Firestore 编写一个网络应用程序,需要能够显示“今日热门帖子”,但在考虑不同时区的用户时,我无法正确获取查询。
日期以 UTC 0 形式存储在数据库中,然后通过Moment.js调整为客户端中当前用户的 UTC 偏移量。这工作正常。
添加新帖子时,我使用firebase.firestore.FieldValue.serverTimestamp()
将当前服务器时间戳存储在名为 的字段中timestamp
,如下所示:
const collectionRef = db.collection('posts');
collectionRef.add({
name: "Test Post",
content: "Blah blah blah",
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
likeCount: 0
});
Run Code Online (Sandbox Code Playgroud)
然后在服务器上,我有一个云函数,它在创建时运行,并向文档添加另一个字段,称为datestamp
UTC 0 时间戳,但进行了调整,以便时间是一天的开始。该函数如下所示:
exports.updatePostDate = functions.firestore
.document('posts/{postID}')
.onCreate((event) => {
const db = admin.firestore();
const postRef = db.doc('post/'+event.params.postID);
const postData = event.data.data();
const startOfDay = moment(postData.timestamp).startOf('day').toDate();
return postRef.update({
datestamp: startOfDay
});
});
Run Code Online (Sandbox Code Playgroud)
存储时间始终是一天开始的时间戳使我能够编写这样的查询来查找所有帖子并按给定日期的受欢迎程度排序:
const startOfDayUTC = moment.utc().startOf('day').toDate();
const postQuery = db.collection('posts')
.orderBy('likeCount', 'desc')
.orderBy('timestamp', …
Run Code Online (Sandbox Code Playgroud)