我想在HTML5中存储JavaScript对象localStorage
,但我的对象显然正在转换为字符串.
我可以使用存储和检索原始JavaScript类型和数组localStorage
,但对象似乎不起作用.他们应该吗?
这是我的代码:
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
console.log('typeof testObject: ' + typeof testObject);
console.log('testObject properties:');
for (var prop in testObject) {
console.log(' ' + prop + ': ' + testObject[prop]);
}
// Put the object into storage
localStorage.setItem('testObject', testObject);
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
console.log('typeof retrievedObject: ' + typeof retrievedObject);
console.log('Value of retrievedObject: ' + retrievedObject);
Run Code Online (Sandbox Code Playgroud)
控制台输出是
typeof testObject: object
testObject properties:
one: 1 …
Run Code Online (Sandbox Code Playgroud) 我一直想知道这个问题,所以我认为使用我的第一个Stack Overflow帖子来询问它是值得的.
想象一下,我与相关的消息列表进行了讨论:
DiscussionCategory discussionCategory = _repository.GetDiscussionCategory(id);
Run Code Online (Sandbox Code Playgroud)
discussionCategory.Discussions是当前未加载的Discussion实体列表.
我想要的是能够遍历discussionCategory中的讨论并说明每次讨论中有多少消息而不提取消息数据.
当我尝试这个之前,我必须加载讨论和消息,以便我可以做这样的事情:
discussionCategory.Discussions.Attach(Model.Discussions.CreateSourceQuery().Include("Messages").AsEnumerable());
foreach(Discussion discussion in discussionCategory.Discussions)
{
int messageCount = discussion.Messages.Count;
Console.WriteLine(messageCount);
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎相当低效,因为我从数据库中取出可能有数百个消息体并将它们保存在内存中,而我想做的就是将它们的数量用于表示目的.
我已经看到了一些涉及这个问题的问题,但他们似乎没有直接解决它.
提前感谢您对此主题的任何想法.
更新 - 根据要求提供更多代码:
public ActionResult Details(int id)
{
Project project = _repository.GetProject(id);
return View(project);
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中(只是为了测试它):
Model.Discussions.Load();
var items = from d in Model.Discussions select new { Id = d.Id, Name = d.Name, MessageCount = d.Messages.Count() };
foreach (var item in items) {
//etc
Run Code Online (Sandbox Code Playgroud)
我希望这会让我的问题更加清晰.如果您需要更多代码详细信息,请与我们联系.
在使用PackageMaker(适用于Snow Leopard的XCode 3.2.1 1613)开发安装时,有时我在大多数(如果不是全部)文件上设置的权限,所有者和组都会蒸发.结果看起来我刚刚将文件添加到PackageMaker,然后在每个文件上设置文件perm/own/grp.
有点奇怪的是,.pmdoc文件夹中的大多数xml文件都会发生变化,甚至是index.xml,当没有任何变化时会强制出现大的SVN问题!当发生这种情况时,我只是SVN Revert,然后在建造之前检查所有内容(可能需要20分钟).
我怎么能避免这个?我可以做些什么来触发这种(不良)行为?我还没有能够将我的行为与问题联系起来.下次它发生并且我有松弛的时间,我会区分.pmdoc/xml的变化,看看我是否能找到一个模式.
同时,如果有人有一些提示,我很感激.
我在Makefiles上看过这样的命令,我不太明白:
vpath.o: make.h config.h getopt.h gettext.h dep.h
Run Code Online (Sandbox Code Playgroud)
和
.SUFFIXES:
.SUFFIXES: .f .o
#
# %------------------%
# | Default command. |
# %------------------%
#
.DEFAULT:
@$(ECHO) "Unknown target $@, try: make help"
#
# %-------------------------------------------%
# | Command to build .o files from .f files. |
# %-------------------------------------------%
#
.f.o:
@$(ECHO) Making $@ from $<
@$(FC) -c $(FFLAGS) $<
Run Code Online (Sandbox Code Playgroud)
什么是*.o
和*.suffixes
是什么意思?
注意:这两个命令来自脚本的不同部分.
我的公司有一个网络分析软件包,我们用它来进行自己的客户营销活动跟踪.它使用服务器日志,JS和图像Web错误,cookie,独特的缓存文件和ETag标头的组合来收集和整理用户活动.
最近,我们发现插入用户浏览器的某个(未命名的)隐私保护应用程序正在修改某些跟踪代码,其明显意图是阻止用户的活动被跟踪.我们已经购买了应用程序的副本并在本地进行了测试,对于包括Google Analytics在内的许多其他Web错误和分析应用程序也是如此.
对于大多数这些,数据的更改方式会阻止跟踪软件正常运行.但是,他们使用一致的模式进行更改,并且由于我们的排序规则的工作方式,他们的更改对我们的跟踪和分析包的操作没有影响.(好吧,有一个副作用会降低一些计时计算的精确度,从毫秒到秒.)
简而言之,情况是:
我们的分析结果不受应用程序试图破坏数据的影响
用户显然打算阻止分析他们的在线活动
我们可以更改我们的应用程序以检测尝试阻止
我们必须花时间和金钱修补和测试我们的应用程序,以使尝试的隐私阻止实际上成功
因此,我们应该采取多少措施来检测和尊重用户的意愿,这是一种道德上的困境.涉及的一些问题是:
隐私应用程序是否有责任按预期执行?有办法,他们可能会改变该数据将防止我们的分析,从跟踪他们的用户.
我们有责任增强我们的应用以检测用户的意图吗?这将导致开发成本以及消除有价值的数据(大约2%的流量使用此应用程序).
您认为我们的道德责任应该是什么?
我们应该忽略它并使我们的应用程序按原样运行
我们应该承担费用,丢失数据,并尊重用户的隐含愿望
我们应该联系应用程序的开发人员,告诉他们阻止我们的系统工作的更好方法
我们应该宣传他们的软件没有按预期运行
其他...?
为了澄清,隐私工具根本不起作用.我们的应用程序,无需更改,仍会跟踪使用它的用户.我们必须改变我们的应用程序,以不跟踪这些用户.
我们确实有一个基于cookie的选择退出,用户可以从追踪器的主页中选择.
我们向开发隐私应用程序的公司发送了一份说明,他们表示会对此进行调查.
如何从Java servlet返回JSON对象.
以前在使用servlet执行AJAX时,我返回了一个字符串.是否有需要使用的JSON对象类型,或者只是返回一个看起来像JSON对象的String,例如
String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
Run Code Online (Sandbox Code Playgroud) 我的PHP页面上有一个表单,它执行一些ajax验证(这是有效的).这是一个片段(实时表单中包含的字段多于此)
<form name="form" onSubmit="return validate_form();" action="submitform.php" method="post">
<table border="0" cellpadding="5" bgcolor="#000000">
<tr>
<td width="175">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Requested Vendor TAG:</b> </font></div>
</td>
<td>
<input type="text" name="VendorTAG" onblur="checktag();" maxlength="8"> <div id="vendtag"></div>
</td>
</tr>
<tr>
<td width="175">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Contact Name: </b> </font></div>
</td>
<td>
<input type="text" name="ContactName" maxlength="50">
</td>
</tr>
Run Code Online (Sandbox Code Playgroud)
当我单击提交按钮时,它会加载此代码:
<php ?
if(trim($VendorTAG) == '')
{
die('Vendor TAG cannot be blank');
}
else if(trim($ContactName) == '')
{
die('Contact Name cannot be blank');
} …
Run Code Online (Sandbox Code Playgroud) 我是JSP的新手,我正在尝试减少大量的剪切和粘贴代码.
在项目的每个页面上,大约有25行混合JSP,Struts标记,JSTL标记和HTML,它们已在页面的各个点进行剪切和粘贴.这些~25行重复使用的代码在页面之间甚至没有相似之处(并且有大约250页),但在每个页面中完全相同.最终这个(业务逻辑)代码应该移出View,但这样做会比我的日程安排允许的项目更大,所以我想知道是否有一种简单的方法可以重用混合标签+ JSP在页面内,作为临时修复,以便在时间允许的情况下可以分阶段重构代码.
为清楚起见,我正在寻找一种在不创建新文件(/ local到页面范围)的情况下封装代码的方法- 即它应该在调用它的同一页面中定义.
有人建议可以用Tiles完成 - 如果是这种情况,请告诉我如何操作.