如果这些非常基本的问题已经问过和回答过很多次了,请原谅我,但是几个小时的搜索没有找到任何相关的东西。
(1)"上线"后对于一个网页,Stackoverflow开发人员希望对页面进行一些更改,但不希望这些更改"上线"。直到他完成了一个周期的原型和测试的变化(你知道,基本的SDLC)。他是如何在网站直播中做到这一点的?
(2)一个更基本的问题:当我花了,比如说,30分钟更新一个现有的,实时的网页,似乎任何访问者在这段时间内都会观察到每一个增量的变化(包括无意的错误,打字错误等),我正在做实时。我一定是遗漏了一些很明显的东西,所以请原谅我!我如何对当前的网页进行更改,而不会在编辑会话期间造成这样的混乱?
我看到这么多不好的评论和一个不好的回答。你从不在实时页面上工作。如果你把它弄坏了怎么办?你问这个问题的事实告诉我,你不够好,不会犯错误。
在我看来,只有一种好方法可以做到这一点。
创建子域名dev.whatever.com,并把你当前的网站放在那里。从你的本地项目开始,当你对结果感到满意时,然后把它转移到你的开发网站,以确保没有问题,先在那里做所有的事情,然后当你满意时,你就搬去生活。
为什么不直接用不同的文件名保存页面的副本呢?上传它并进行修改,直到它按照你想要的方式工作。没有人会知道这个页面的存在,除了你,所以没有人会看到任何问题。一旦你满意了,就使用页面代码。
我认为在本地存储库工作并学习版本控制是最好的。这样,万一你的代码被完全破坏了,你可以毫无顾虑地恢复到以前的工作版本。您还可以使用本地服务器,这样只有您可以看到代码正在进行的当前更新。一旦您对一切都感到满意并且所有代码都可以工作,那么您就可以将更改推送到远程服务器上。
版本控制:https://git-scm.com/
进一步说明我的评论,这里有一个简单的缓存页面脚本,它使用一个定义来允许页面在缓存模式或动态模式下运行。将CACHESITE
切换为false以返回页面的实时呈现。如果您是管理员(或您决定的其他触发器),则需要扩展以绕过缓存,因此您可以看到正在进行的更改,但用户看到的是缓存页面:
<?php
// If true, cache this page
define("CACHESITE",true);
function CachePage($content = '',$saveto = 'index.php')
{
ob_start();
echo $content;
$data = ob_get_contents();
ob_end_clean();
if(CACHESITE) {
// If you have a define for site root, use instead
$dir = $_SERVER['DOCUMENT_ROOT'].'/temp/';
if(is_file($cached = $dir.$saveto)) {
include($cached);
return;
}
if(!is_dir($dir))
mkdir($dir,0755,true);
$cfile = fopen($cached,'a');
fwrite($cfile,$data);
fclose($cfile);
}
return $data;
}
// Whatever your content is, it needs to be in a string
// Use output buffering if you have include pages
$test = 'test is the best'.rand();
echo CachePage($test,'thispage.php');
?>
无论如何,有很多方法可以做到这一点,但是缓存相对来说工作得很好。