我正在将一个从Linux移植到FreeBSD的应用程序需要查看网络路由表(Linux上的"路由"或FreeBSD上的"netstat -r").
在Linux上,应用程序只需读取/ proc/net/route和/ proc/net/inet6_route.
在FreeBSD上以编程方式执行此操作的最佳方法是什么?
我正在开展一个项目,在那里我开发了一个关于travelagency的网站.事情变得越来越好,正在产生更多的流量.问题在于缓慢生成的pricetable.我和我的客户认为,由于可用的资金,memcache应该做到这一点.退出我开始时我已经用新的jQuery ajax代码重写了旧的ajax代码.今晚的其他一些帖子有点涉及这个话题.
现在我有以下代码显示特定月份的价格:
function ShowPriceTable(targetElement, accommodationID, month)
{
$.ajax({
type: "POST",
url: basePath + "/ajax/GetPriceTable.php",
data: "accommodationID="+accommodationID+"&month="+month,
success: function(data){
$("#"+targetElement).html(data);
$.ajax({
type: "POST",
url: basePath + "/ajax/WriteCache.php",
data: "accommodationID="+accommodationID+"&month="+month+"&data="+data,
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
GetPriceTable.php是一个大文件,执行许多查询,并在那里完成了大量的价格计算.这一切都导致HTML表格的价格.存储的输出data
被注入div的innerHTML属性,在这种情况下,targetElement
因为它必须是可调整的.
我想,好吧..当我有正确的输出时,data
我只是WriteCache.php
用数据激发另一个调用.然后将数据存储在内存缓存服务器中$cache->set("my_key", $_POST["data"]);
(使用标头并将其设置为过去以确保浏览器的"新"访问).
现在是棘手的部分......无论我尝试什么,我的缓存中只能得到4067个字符.我已经没有了我能想到的选择.这只是总产量的一小部分...... 另外,我在寻找住宿的价格alert
中data.length
显示了我,长度是98.858.
你有什么建议可能导致这种奇怪的行为吗?数据是否可以一点一点传递?Memcache有一个选项chunk_size
,默认情况下它被设置为8192(字节我想??文档没有告诉..)
任何帮助是极大的赞赏!
干杯!
Ps标签memcached必须是memcache但我不能选择那个选项..
更新 问题与memcache无关.出于某种原因,我的数据在重新发送时会发生变化.这导致无效的HTML,由于某种原因,它没有设置到缓存中并且没有显示在我的输出中(邮件给自己)但是当我将结果(使用成功:在第二次调用中)输出到另一个DIV时,我确实看到了'损坏'输出......
对于我使用PHP构建的YouTube网络应用程序,我有简单的视频播放器,嵌入了一个<iframe>
,然后是一个<div>
有关当前加载的视频(描述,ID,标题等)的信息.
A <ul>
包含从YouTube使用PHP gData API获取的视频列表,每个视频都<li>
包含一个链接,用于激活JavaScript以将视频播放器更改为正确的视频,还可以更新页面上的视频信息.
问题在于:gData
为视频描述返回多行,非转义序列,但在JavaScript中不起作用.我应该如何删除换行符并将其替换为<br>
(注意它们不是换行符\n
,它们是实际的换行符和换行符).
我还必须逃避在JavaScript字符串中无效的其他内容,例如撇号字符'
.做这个的最好方式是什么?
我正在寻找一个库/模块/包,我可以创建并签署X.509证书,并能够有条件地添加自定义v3扩展 - 这可能相当复杂; 例如,Kerberos PKINIT使用的这个bletchful OpenSSL.cnf片段,仅代表foo@EXAMPLE.ORG
:
[v3_extensions] subjectAltName = email:foo@example.org, otherName:pkinitSan;SEQUENCE:krb_princ_name_1 [krb_princ_name_1] realm = EXP:0, GeneralString:EXAMPLE.ORG principal_name = EXP:1, SEQUENCE:krb_princ_seq_1 [krb_princ_seq_1] name_type = EXP:0, INTEGER:1 name_string = EXP:0, SEQUENCE:krb_principal_1 [krb_principal_1] princ0 = GeneralString:foo
在我所知道的语言(包括Perl,Python,Ruby,PHP,Bash和一些C#)中找到的所有内容中,使用openssl
命令行和自动生成的.cnf文件...这是一个丑陋的过程.有没有更好的方法呢?(Ruby的'openssl'起初看起来非常好,但后来我到了PKINIT ...)
你应该如何使用C#5 async
来表示一系列异步任务?例如,如果我们想从服务器下载编号文件并在我们获取它时返回每个文件,我们如何实现这样的方法?
public async IEnumerable<File> DownloadPictures() {
const string format = "http://example.com/files/{0}.png";
for (int i = 0; i++; ) {
yield return await DownloadFile(string.Format(format, i));
}
}
Run Code Online (Sandbox Code Playgroud) 我想要做的是在javascript路径的末尾添加一个查询字符串,以便每当我的应用程序更新到新版本时,都会下载javascript.但是,只要查询字符串相同,我希望它继续使用缓存版本而不执行http请求来检查脚本是否已更改.
我在PHP中完成此操作的方法是从CVS标记中读取.当我构建HTML输出时,我读取CVS标记并使用它附加到javascript路径的末尾,以便它创建一个如下所示的脚本标记:
<script src="javascript/messages/shipments.js?TPRSAPPS-DEV2_090828145712237-BRANCH" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
只要应用程序没有更改,标记将保持不变,因此查询字符串也将保持不变.浏览器应该缓存JS并且根本不做网络请求,因为过期日期是远期的.每次更新应用程序时,该查询字符串都将更改,浏览器应下载该查询字符串.
这在IE8中很有用.我的问题是Firefox.Firefox缓存文件,但下次加载页面时,Firebug会显示304响应,表明它仍然对该文件发出网络请求,然后发现它没有更改.
所以我的问题是,当有查询字符串时,firefox是否会忽略javascript的expires头和缓存?
相关:firefox决定不缓存什么? 显然Rails做了类似的事情.但这不能回答我的问题.
以下是我回复此文件的回复:
https://appdev.prsx.net/~jhargett/PRSApps-Motorlog/javascript/menuReader.js?TPRSAPPS-DEV2_090828145712237-BRANCH-DIFFERENT
HTTP/1.1 304 Not Modified
Date: Mon, 03 Oct 2011 18:35:26 GMT
Server: Apache/2.2.3 (Red Hat)
Connection: close
Etag: "179010-3f8-49a9a74334200"
Vary: Accept-Encoding
Run Code Online (Sandbox Code Playgroud)
Firebug中的Cache选项卡说:
Last Modified Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time)
Last Fetched Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time)
Expires Fri Oct 28 2011 18:33:31 GMT-0500 (Central Daylight Time)
Data Size 345
Fetch Count 12
Device disk
Run Code Online (Sandbox Code Playgroud) 我正在为可视化工具编写拖动系统.单击并拖动时,它会移动您在窗口中看到的内容.当鼠标击中面板边缘时,我开始重新定位光标,使其永远不会离开框.它跟踪光标在盒子内部的虚拟位置.这部分代码工作正常.
只要有一个MouseMoved事件并且位置在框内,我就会执行Cursor.Show().如果它在框外,我会做Cursor.Hide().当用户放开鼠标按钮时,我执行Cursor.Show().
有很多问题.当第一次Hide调用发生时,它不会隐藏.我必须将光标的虚拟位置移到包含窗口之外才能发生隐藏.当我搬回来时,即使正在调用Show,它也不会变得可见.最后,当释放鼠标按钮时,尽管显示被调用,但光标不会出现.
而不是要求人们调试我的代码,我只是想知道事件系统中发生了什么使得Cursor.Hide/Show不能按照我期望的方式工作.我的印象是,如果一个名为Hide的控件,光标会在该控件内部被隐藏; 同样如果我从控件中调出show.
在MVC2中,我曾经以一种方式创建强类型视图,当我发布时,我从未使用过FormCollection对象.我的签名总是这样:
[AcceptVerbs(HttpVers.Post)]
public Create(Person newPerson)
{
//code to update the person from the post
}
Run Code Online (Sandbox Code Playgroud)
但是现在我看到了这个新的TryUpdateModel方式,我只想写下这样的东西:
[AcceptVerbs(HttpVers.Post)]
public Create()
{
Person thePersonToCreate = new Person()
TryUpdateModel(thePersonToCreate)
{
//Code to create the person if model is valid
}
}
Run Code Online (Sandbox Code Playgroud)
所以现在看来我必须模拟HTTPContext才能测试这个方法.但是,似乎我仍然可以使用强类型方法的前一种方式.我意识到TryUpdateModel方法对那些使用FormCollection方法的人来说是一种改进,但为什么还要使用TryUpdateModel?
我如何编写一个脚本,将Safari中打开的网页保存到某个路径?
(代码将在稍后用于更复杂的脚本,因此使用系统事件的kludgy解决方案不会这样做.)很多谷歌搜索使用保存源函数的脚本让我很不知情,所以答案可能互联网上的第一个.我粘贴了一些下面可能有用的东西.
用于Safari的AppleScript字典中的这两个条目看起来很有用:
document n [另请参阅Standard Suite]:表示窗口中活动选项卡的Safari文档.
特性:
- source(text,r / o):当前在文档中加载的网页的HTML源.
- text(text,r / o):当前加载在文档中的网页文本.对文本的修改不会反映在网页上.
- URL(文本):文档的当前URL.
然后:
save v:保存对象.
save specifier:命令的对象
- [ as text]:保存数据的文件类型.
- [ in alias]:保存对象的文件.
此脚本确实保存了HTML文档,但与使用Safari手动"导出为页面源"功能保存的文件相比,输出看起来很糟糕:
tell application "Safari"
(* Get a reference to the document *)
set myDoc to document of front window
(* Get the source of the page *)
set mySrc to source of myDoc
(* Get a file name *)
set myName to "Message_" & "0001" & ".html" -- …
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,article.DatePublished是一个可以为空的DateTime字段.现在我有以下代码:
list.Add(article.DatePublished.Ticks);
Run Code Online (Sandbox Code Playgroud)
在这里我得到一个编译错误,因为Ticks属性不适用于可空的DateTimes.
处理此问题的一种方法是:
if (article.DatePublished != null)
list.Add(((DateTime)article.DatePublished).Ticks);
Run Code Online (Sandbox Code Playgroud)
这有效,但这是一个优雅的解决方案吗?或者我们可以让它"更好"吗?
谢谢,
维韦克