Php Ajax代码加载非常慢
下面是我用3分15秒加载的Ajax代码。有什么问题吗Php Ajax代码加载非常慢,php,jquery,html,ajax,imagemagick,Php,Jquery,Html,Ajax,Imagemagick,下面是我用3分15秒加载的Ajax代码。有什么问题吗 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <Script type="text/javascript"> function im()
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<Script type="text/javascript">
function im()
{
alert('iam in');
var Name=document.getElementById("Name").value;
var pointsize=document.getElementById("pointsize").value;
var bckclr=document.getElementById("bckclr").value;
var color=document.getElementById("color").value;
var bcolor=document.getElementById("bcolor").value;
var url='Name='+Name+'&pointsize='+pointsize+'&bckclr='+bckclr+'&color='+color+'&bcolor='+bcolor;
alert("srihost.com/2.php?"+ url);
alert(url);
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("Div_Im").innerHTML=xmlhttp.responseText;
document.getElementById("Div_Im").style.border="2px solid #A5ACB2";
}
}
xmlhttp.open("GET","2.php?"+ url,true);
xmlhttp.send();
}
</script>
</head>
<body>
Enter Name: <input type="text" id="Name" onchange="im()" value="yourname" name="Name" />
pointsize: <input type="text" id="pointsize" onchange="im()"
value="50" name="pointsize" />
BackGround Color: <input type="text" id="bckclr" value="red"
onchange="im()" name="bckclr" />
FontColor: <input type="text" id="color" value="white"
onchange="im()" name="color" />
Border Color: <input type="text" id="bcolor" value="blue"
onchange="im()" name="bcolor" />
<div id="Div_Im">
replace me
</div>
</body>
</html>
函数im()
{
警报(“iam in”);
var Name=document.getElementById(“Name”).value;
var pointsize=document.getElementById(“pointsize”).value;
var bckclr=document.getElementById(“bckclr”).value;
var color=document.getElementById(“color”).value;
var bcolor=document.getElementById(“bcolor”).value;
var url='Name='+Name+'&pointsize='+pointsize+'&bckclr='+bckclr+'&color='+color+'&bcolor='+bcolor;
警报(“srihost.com/2.php?”+url);
警报(url);
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“Div_Im”).innerHTML=xmlhttp.responseText;
document.getElementById(“Div_Im”).style.border=“2px solid#A5ACB2”;
}
}
open(“GET”,“2.php?”+url,true);
xmlhttp.send();
}
输入名称:
点大小:
背景色:
FontColor:
边框颜色:
取代我
这是我的服务器页面代码
$Name=$_GET["Name"];
$pointsize=$_GET["pointsize"];
$bckclr=$_GET["bckclr"];
$color=$_GET["color"];
$bcolor=$_GET["bcolor"];
$filename = 'im.png';
$font='Times-Roman';
$cmd = " -background $bckclr -pointsize $pointsize -font $font -fill $color ".
" -strokewidth 1 -stroke $bcolor label:\"$Name\" ";
exec("convert $cmd $filename");
echo('<img src="'.$filename.'">');
$Name=$\u GET[“Name”];
$pointsize=$\u获取[“pointsize”];
$bckclr=$_GET[“bckclr”];
$color=$_GET[“color”];
$bcolor=$_GET[“bcolor”];
$filename='im.png';
$font='Times-Roman';
$cmd=“-background$bckclr-pointsize$pointsize-font$font-fill$color”。
“-strokewidth 1-stroke$b颜色标签:\“$Name\”;
exec(“转换$cmd$filename”);
回声(“”);
它基本上是图像魔法代码,通过创建图像可以很好地工作,但是当我使用Ajax时,加载需要很长时间。我想你自己也尝试过同样的命令,速度更快 因此,确保在命令行上进行测试时,始终使用同一个用户“su www data”,例如Debian 然后总是有一个调试日志,这样您就可以确保参数都设置好了 [编辑] 你在哪个站台上跑步?什么版本的php?什么版本的ImageMagik
你应该添加一些更多的细节,以便让人们帮助你 我想你自己也尝试过同样的命令,而且速度更快 因此,确保在命令行上进行测试时,始终使用同一个用户“su www data”,例如Debian 然后总是有一个调试日志,这样您就可以确保参数都设置好了 [编辑] 你在哪个站台上跑步?什么版本的php?什么版本的ImageMagik
你应该添加一些更多的细节,以便让人们帮助你 有两个原因。首先,您正在对文本框更改执行ajax。它一次又一次地发送ajax请求。您应该只在单击某个按钮/link/submit时调用ajax,这样只会发送一个ajax调用。在php方面,如果第一种情况也是正确的,那么使用exec和convert函数可能会非常繁重。有两个原因。首先,您正在对文本框更改执行ajax。它一次又一次地发送ajax请求。您应该只在单击某个按钮/link/submit时调用ajax,这样只会发送一个ajax调用。在php端,您还可以使用exec和convert函数,如果第一种情况也是正确的,则该函数可能非常繁重。在服务器端,执行可能非常缓慢。运行Firebug之类的浏览器调试器,让您可以查看网络请求。验证问题是从HTTP请求发送到服务器到收到响应之间的时间。在服务器端,执行可能非常缓慢。运行Firebug之类的浏览器调试器,让您可以查看网络请求。验证问题是HTTP请求发送到服务器和收到响应之间的时间。一个提示。使用jQuery进行AJAX调用,而不是手动创建XMLHttpRequest/ActiveXObject。这将使您的代码更具可读性和简洁性,并使整个AJAX调用脚本成为一行程序。让我试着回到uDanger——您正在执行未转义的用户输入!这使任何可以向您的服务器发出HTTP请求的人都可以执行任意命令<代码>名称=“`rm-rf*`!我当时同意@yvind Knobloch Brå。如果要包括jQuery,请使用它。这将使你的任务更容易。一个提示。使用jQuery进行AJAX调用,而不是手动创建XMLHttpRequest/ActiveXObject。这将使您的代码更具可读性和简洁性,并使整个AJAX调用脚本成为一行程序。让我试着回到uDanger——您正在执行未转义的用户输入!这使任何可以向您的服务器发出HTTP请求的人都可以执行任意命令
Name=“`rm-rf*`
!我同意@Øyvind Knobloch Bråthen。如果你包括jQuery,那么就使用它。它会让你的任务更简单。