软件将使用内存,没有什么大惊喜,但与程序的大小相比,如何将这种使用保持在最低限度.
我认为最好的例子就是Firefox.有些用户已经体验过,有些用户没有,但可以肯定地说,所有以前版本的Firefox使用的内存比当前版本多得多.然而,功能扩展和选项被添加.我希望内存使用率可以作为额外的选项而增加.
换句话说,必须有一些方法可以确保您的程序不会耗尽计算机的内存.
所以,我把这变成了一个"最佳实践"的问题,向你们所有人询问你的小技巧和调整是什么让你的程序做它做的事情,用你通常认为的CPU少.而且,最肯定的是避免什么.
这里有一个小问题:我在一本关于C#的书中遇到了一些问题.显然,在编写枚举时,可以设置此枚举的索引大小.对于大的Enum,你应该让编译器处理它我猜,但对于只有2或3项的枚举,你可以这样做:
public enum HTMLTYPE : sbyte
{
HTML401,XHTML10,XHTML11
}
Run Code Online (Sandbox Code Playgroud)
对于那些不知道原因的人来说,显然为任何枚举的索引保留的内存量会自动设置为C#中的整数.换句话说,将保留该数量的内存.但是当你在Enum中定义这么少的东西时,整数就是浪费空间.该书声称这可以减少程序使用的内存量.我想知道这是否属实.
编辑:确实,它应该是记忆,让我觉得好.更改了所有条目.
这是我的情况:我正在建立一个小型网站,当你注册时,你可以选择哪些日子可用.
星期一下午星期二上午星期二下午等...
一直到星期天下午.
我正在使用PHP进行表格检查,我需要声明14个变量,并检查每个变量以确定是否单击了复选框.
现在我想知道,是不是有更简单的方法?现在,这些是复选框,它不像上传文件时只需将[]添加到HTML中的名称属性中,它们就会作为数组上传.
但那会很方便.有谁知道我怎么能得到这样的东西?
我正在使用一个小网站来试验上传图片并显示它们.
当有人点击"添加图片"时,他们会被带到包含表单的页面.他们可以选择一个文件并单击"提交"按钮.
但我现在要做的是:在正常确认按钮旁边放置一个标有"取消"的提交按钮.如果有人选择上传,选择并点击提交,如果他们在文件完全上传之前按下取消按钮,PHP应该停止上传文件并将其删除.然后回到概述.
没有使用任何Javascript.
我只有localhost,所以测试这个是不可能的,因为我只是复制一个文件毫秒我按下提交按钮.本地主机没有上传时间,我不打算在某处购买服务器.
基本上现在发生的是PHP检测到发送了哪个按钮.如果发送了提交按钮,则上传文件,如果发送了取消按钮,则只返回概览.
但是PHP连续完成了它的任务.所以我认为这不会奏效.如何告诉PHP停止上传?
我有这个Javascript,它只是无法正常工作.我已经检查了JSlint但是说一切都有效.仍然无法正常工作.javascript不在HTML中,但链接在<head>
注意:我正在使用本地服务器,所以即时页面加载.
function changeVisibility() {
var a = document.getElementById('invisible');
a.style.display = 'block';
}
var changed = document.getElementById('click1');
changed.onchange = changeVisibility;
Run Code Online (Sandbox Code Playgroud)
这是相应的HTML
<input type="file" name="click[]" size="35" id="click1" />
<div id="invisible" style="display: none;">
<a href="javascript:addFileInput();">Attach another File</a>
</div>
Run Code Online (Sandbox Code Playgroud)
那么我会点击输入,选择一个文件并批准.然后onchange事件触发器和我的不可见div的样式设置为阻止.
问题是,我一直收到这个错误:
"changed is null:changed.onchange = changeVisibility;"
我不明白,我真的没有得到我在这里俯瞰的东西.
编辑:问题回答,谢谢你Mercutio的帮助和其他人当然.最终代码:
function loadEvents() {
var changed = document.getElementById('click1');
var a = document.getElementById('invisible');
document.getElementById('addField').onclick = addFileInput;
changed.onchange = function() {
a.style.display = 'block';
}
}
if (document.getElementById) window.onload = loadEvents;
Run Code Online (Sandbox Code Playgroud)
这是相应的HTML:
<input type="file" name="click[]" size="35" id="click1" …Run Code Online (Sandbox Code Playgroud) 我在PHP中创建了一个数组,其中包含一个unix时间戳的bucnh.
我正在尝试创建一个函数,它将返回一个包含该数组中3个最大数字的索引的数组.
例如,如果最大数字位于索引3,5和8
如果最大值为5,则第二大值为8,三者中最小值为3,我想要一个按此顺序保存值(5,8,3)的数组.
坦率地说,我不知道如何解决这个问题.有人知道怎么做这个吗?
我有一个包含2个表的数据库.
其中一个表包含一行,包含从0到10的数字.
在PHP中,我这样做:
$query = "SELECT ".$param." FROM issues WHERE ".$param." >=0";
$result = @mysql_query($query) or showError("query failed");
if (!($record = mysql_fetch_array($result))) return null;
return $record;
Run Code Online (Sandbox Code Playgroud)
$ param保存行的名称.
我有点期望得到一个数字保持0到10的数字,但我得到一个包含2个元素的数组:
array(
[0] = 0
[row_name] = 0
.
.
. // AND SO ON
)
Run Code Online (Sandbox Code Playgroud)
就是这样.
我之前从未使用过这些函数,www.php.net没有任何真正有用的例子......
我这里有一段PHP代码,删除目录及其中的所有文件(如果存在).但是,我不太确定它,它在我看来它会删除所有的子地图,然后在那些文件等等...
我基本上想要给出和可选的true/false参数来选择是否删除子目录.或者更好的做法是制作2个功能?第一个完全清空文件夹和秒删除文件夹及其中的所有内容.
这是代码:
function delete_directory($dirname) {
if (is_dir($dirname)) {
$dir_handle = opendir($dirname);
if (!$dir_handle) return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file)){
@unlink($dirname."/".$file);
}else {
delete_directory($dirname.'/'.$file);
}
}
}
closedir($dir_handle);
}
@rmdir($dirname) or die("Could not remove directory.");
return true;
}
Run Code Online (Sandbox Code Playgroud)
而我基本上想知道的是:这里可能出现什么问题?是否存在这段代码严重搞砸的情况?我已经用Netbeans对它进行了几个小时的调试,并尝试了很多不同的场景.现在我有点困惑,想知道StackoverFlow的人是否可以在代码中找到一个缺陷?
这是一段代码:
$obj = new myClass();
$obj->{$_GET["func"]}($_GET["param"])
Run Code Online (Sandbox Code Playgroud)
它基于变量工作,但我真的不明白如何.据我所知,变量变量用于这样的东西:
require "dbsettings.php"
$member_id = $_GET['id'];
$db = new DBconnector();
$vars = array('username','passw','email','info','datejoined','dateofbirth');
foreach ($vars as $var) {
$$var = $db->getUserInfo($member_id,$var);
}
echo $username;
echo $passw;
echo $email;
echo $info;
echo $datejoined;
echo $dateofbirth;
Run Code Online (Sandbox Code Playgroud)
那么,在第一段代码中,发生了什么?此外,大括号的功能是什么?他们告诉编译器怎么想?
我有一个由第三方供应商创建的数据库,我现在正在编写一个新的用户界面.
DB将事件开始时间存储为unix时间戳(以GMT为单位).我需要做的是查询一天的范围.所以我想只需要做一个:
SELECT * WHERE start > $last_night_at_midnight AND start < $tonight_at_midnight
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是在PHP中组合日期/时间函数以创建这些变量的简单方法.感觉就像我正在做的一切对于这么简单的程序来说太复杂了.
有人有一个简单的解决方案吗?
干杯
我在PHP页面中找到了一个函数来计算2点之间的里程数,但是它有问题.它应该与谷歌地图一起使用,但距离的差异在谷歌地图中的范围从1.3到1.65倍(更准确).
这是功能:
$M = 69.09 * rad2deg(acos(sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($lon1 - $lon2))));
Run Code Online (Sandbox Code Playgroud)
我发现它有点复杂,我不知道几何要知道这是否正确.
有更多专业知识的人可以看看这个,看看它有什么问题吗?
php ×8
html ×3
arrays ×2
datetime ×1
distance ×1
geolocation ×1
google-maps ×1
javascript ×1
mysql ×1
null ×1
sql ×1
variables ×1
web-services ×1