小编Mic*_*lle的帖子

避免重复进入mysql数据库的最佳方法

我有一个包含3列的表 - id(pk),pageId(fk),name.我有一个PHP脚本,它将大约5000条记录转储到表中,大约一半是重复的,具有相同的pageId和名称.pageId和name的组合应该是唯一的.当我遍历php中的脚本时,防止重复项保存到表中的最佳方法是什么?

php mysql

37
推荐指数
2
解决办法
6万
查看次数

<p>在<li>元素中是否正确

我正在标记一系列知识库,如何输入具有一系列步骤和相关屏幕截图的文章.在过去,我总是在段落标签中的列表项中包装文本,但我想知道在这种情况下这是否在语义上是正确的,或者我是否应该使用标题标签(甚至没有).我很想把它标记如下:

<ol class="kbarticle">
        <li>
            <p>Download the Windows client software <a href="">here</a>.</p>
            <a href="#screenshot1"><img src="screen1.jpg" alt="Step 1" /></a>
        </li>
        <li>
            <p>Double click the downloaded file and click "Next" to continue.</p>
            <a href="#screenshot2"><img src="screen2.jpg" alt="Step 2" /></a>
        </li>
<ol>
Run Code Online (Sandbox Code Playgroud)

另外,如果有任何HTML5元素在语义上更正确,我很想知道.

html

33
推荐指数
4
解决办法
3万
查看次数

如何使用Puppet参数化类来强制应用资源的顺序?

Puppetlabs文档声明,为了让一个类需要另一个类,您应该使用关系链接语法并在外部节点中声明这两个类.

我有一个repo类,它创建了yum repo定义,每个modole中的许多包都依赖于它.在每个模块中,我有一个Class ['repo'] - > Class ['modulename']语句,这两个类都在节点中声明.但是,当puppet运行时,它并不总是按预期在模块类之前执行repo类.为什么不?以下示例(木偶2.6.16):

编辑:这个问题似乎有3种基本解决方案.

  1. 使用before/require元参数替换具有资源依赖性的类依赖项(如turingmachine的答案中所示).
  2. 删除外部类依赖项并显式声明内部类之间的依赖关系.
  3. 使用stdlib模块中Puppetlabs提供的锚类型来包含一个类,允许依赖类使用链接语法创建对外部类的引用.

那么考虑到Puppet v3以及将重构保持在最低限度的愿望,这些方法中的哪一种最好?

清单puppettest.pp:

class { 'repo': }
class { 'maradns': }

class repo {
  class { 'repo::custom': }
}

class repo::custom {
  yumrepo {'custom':
    enabled  => 1,
    gpgcheck => 0,
    descr    => "Local respository - ${::architecture}",
    baseurl  => 'http://repo.nike.local/CentOS/\$releasever/\$basearch';
  }
}

class maradns {
  Class['repo'] -> Class['maradns::install']
  Class['maradns::install'] -> Class['maradns::config']
  Class['maradns::config'] ~> Class['maradns::service']
  class { 'maradns::install': }
  class { 'maradns::config':  }
  class { 'maradns::service': } …
Run Code Online (Sandbox Code Playgroud)

puppet

15
推荐指数
1
解决办法
2万
查看次数

使用Vagrant,为什么木偶供应比定制包装盒更好?

我正在创建一个虚拟机来模仿我们的生产Web服务器,以便我可以与新的开发人员共享它,以便尽快加快速度.我已经浏览过Vagrant文​​档但是我不明白使用通用基本框和使用Puppet配置所有内容的优势,而不是打包已经安装和配置的所有内容的自定义框.我能想到的只是;

使用Puppet与自定义打包盒的优点

  • 易于让每个人都保持最新 - 能够将清单置于版本控制之下并共享回购,以便其他开发人员可以简单地提取新更新并重新运行puppet,即"vagrant provision".
  • 清单中记录了环境.
  • 能够使用在生产环境中定义的木偶模块来确保相同的环境.

使用Puppet与自定义打包盒的缺点

  • 编写清单所需的时间比简单地安装和配置自定义打包的盒子要长.
  • 使用puppet第一次构建虚拟机需要的时间比简单地下载自定义打包的盒子要长.

我觉得我必须错过一些重要的细节,你能想到更多吗?

puppet vagrant

12
推荐指数
2
解决办法
1321
查看次数

使用'git pull'与'git checkout -f'进行网站部署

我发现了两种使用裸远程仓库自动部署网站更新的常用方法.

第一个要求将repo克隆到web服务器的文档根目录中,并且在更新后的钩子中使用git pull.

cd /srv/www/siteA/ || exit
unset GIT_DIR
git pull hub master
Run Code Online (Sandbox Code Playgroud)

第二种方法将"分离的工作树"添加到裸存储库中.post-receive钩子使用git checkout -f将存储库的HEAD复制到工作目录,即webservers文档根目录,即

GIT_WORK_TREE=/srv/www/siteA/ git checkout -f
Run Code Online (Sandbox Code Playgroud)

第一种方法的优点是可以提交网站工作目录中的更改并将其推送回裸存储库(但不应在实时服务器上更新文件).第二种方法的优点是git目录不在文档根目录中,但使用htaccess可以很容易地解决这个问题.

在最佳实践方面,一种方法在客观上是否优于另一种方法?我缺少哪些其他优点和缺点?

git web-deployment

11
推荐指数
1
解决办法
7898
查看次数

使用javascript滚动日志文件(tail -f)动画

我想在网站上创建一个动画来模仿滚动日志文件或tail -f.我将它提供一个虚假的日志消息列表,它们将被写入div的底部,并在显示新消息时向上和向上滚动,然后循环.它需要看起来是真实的,白色的黑色使用固定宽度的字体等.

有谁知道任何javascript或jQuery库可以帮助我吗?我是javascript的初学者,所以任何关于如何处理这个问题的建议都会非常感激.

javascript css jquery

7
推荐指数
2
解决办法
2万
查看次数

使用SVN 1.7的实时网站使用工作副本有什么不利之处吗?

我打算今天发布我们的实时网站,我读过最好的选择是使用svn export来避免使用.svn文件填充工作副本,但是这不再是SVN 1.7的问题,因为存储了元数据在一个文件中.在我看来,使用工作副本比导出更好,因为更新实时站点就像运行'svn update'一样简单.有没有理由不签出工作副本并使用导出?

svn

7
推荐指数
1
解决办法
263
查看次数

在流量高峰期间查询远程Web API与本地MySQL数据库?

我们在我们的主页上实现了一些代码,这些代码依赖于每个独特命令的geoip查找,我们可以选择查询geoip Web服务(Maxmind)或下载数据库并在本地查询.该服务器目前是一个512MB的Linode实例,每天只接收大约1500个唯一身份用户,但我们担心在流量高峰期间会发生什么.

我很清楚,本地查找会更快,但是在加载数据库时肯定会比处理额外的http请求更多ram/CPU密集.显然,如果升级去当地是最好的route.I可以想象超过一定每秒连接数,服务器会更有可能成为无法查询其本地数据库比一个Web API服务器内存是很容易实现(假设,当然web api服务器可以处理http请求).

任何关于哪种解决方案将是最强大的长期解决方案来处理偶尔的交通泛滥而不拒绝服务的任何输入将非常感激.

编辑:只是尝试进一步量化这一点,让我们说服务器需要能够处理每秒最多200个连接.每个连接都需要单个数据库查询或http请求.

mysql web-services

5
推荐指数
1
解决办法
1176
查看次数

Redmine任务粒度

我一直在用Redmine管理我的创业公司近一年.我将所有问题存储在一个项目中,其中包含两个子项目,用于我必须外包的区域,并且不希望让承包商访问主要项目问题.我的问题是我最终遇到了数百个问题,这些问题在实施它们所需的时间内差别很大.有些是小的,例如'控制器中的'错误','添加电话号码联系我们页'等等,有些需要更多努力,例如'创建新的问答区','将服务器迁移到nginx',有些更抽象,例如'调查新的SEO机会','考虑实施经销商控制面板'等.

我觉得我必须错误地使用Redmine,因为将这些混合在一起有点令人困惑.关于如何更好地组织的任何想法将不胜感激.如果补充其他工具可能是一个更好的主意,我很乐意听取建议.

redmine issue-tracking

4
推荐指数
1
解决办法
2234
查看次数

创建两列有序列表.我可以在OL和LI标签之间放置DIV吗?

使用960.gs框架,我正在尝试创建一个两个列的有序列表,其中每个列表项包含一个标题和段落,编号遍历,而不是向下,例如,顶行包含1,2而不是1,3.我能让它工作的唯一方法是在OL和LI元素之间放置一个DIV.这感觉不对,我确定它错了,虽然我不确定为什么.实现这一目标的正确方法是什么?我有以下标记;

<div class="container_16">
<ol>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>
    </div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>
    </div>
    <div class="clear"></div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>    
    </div>
    <div class="grid_8">
        <li><h2>Heading</h2>
            <p>Paragraph</p>
        </li>    
    </div>
    <div class="clear"></div>
</ol>
</div>
Run Code Online (Sandbox Code Playgroud)

html css

3
推荐指数
1
解决办法
5056
查看次数

多次调用Smarties display()方法与使用includes相比

将网站的模板化部分组合在一起的最佳方法是哪种方法?我更喜欢第一种解决方案,但我不确定使用多次调用display()是一种很好的做法.我正在寻找易于维护和速度.

<?php
$smarty->display('header.tpl');
$smarty->display('menu.tpl');
$smarty->display('article1.tpl');
$smarty->display('footer.tpl');
?>
Run Code Online (Sandbox Code Playgroud)

或显示单个智能模板,然后在模板中

{include file="header.tpl"}
<body id={$pageid}>
{include file="menu.tpl"}
{include file="header_inner.tpl"}

Content of page

{include file="footer.tpl"}
Run Code Online (Sandbox Code Playgroud)

smarty

2
推荐指数
1
解决办法
2131
查看次数

阻止静态资产的无Cookie子域被搜索引擎索引

我已经为所有静态资产(static.example.com)创建了一个新的子域,方法是创建一个新的A记录并将其指向具有新IP地址的同一服务器,然后使用与主www相同的DocumentRoot创建虚拟主机.example.com网站.我们已经将静态资源的所有引用都指向静态子域,但是可以通过static.example.com或www.example.com访问所有网站资源.

问题是Google已经开始在static.example.com子域上索引html文件.什么是阻止谷歌索引此域名文件的最佳方法?

.htaccess seo

1
推荐指数
1
解决办法
847
查看次数