我在一个站点的php脚本里面有800行JS代码,遍布一些JS函数的是一些PHP回声从PHP插入变量。我希望尽可能多的JS离开页面,但我不知道有什么好的方法,因为我没有在JS中过期,并且因为我没有编写代码,所以我没有甚至知道100%这个东西的原因。当脚本使用PHP变量时导出javascript
下面是一个最糟糕的犯罪者的例子,我不知道如何转换出PHP页面。
function validateCostCenter(el){
var objCB = el;
var emp_code = objCB.name.substring(23,29);
var local_plant_ID ="<?=$plant['Plant']['LocationID']?>";
var cc_plants_array = ["<?=$cc_plants?>"];
var CCPlant=false;
var CostCenterExists=false;
var std_cs_array = [];
<?
$idx = 0;
foreach($employees as $emp){
foreach($std_cs as $cs){
if($emp['Emp']['id'] == $cs[0]['emp_id']){
echo "std_cs_array[".$idx."] = [\"".trim($emp['Emp']['code'])."\",\"".$cs['0']['emp_id']."\",\"".$cs['0']['locationid']."\",\"".$cs['0']['charge_back_plant_id']."\"];\n";
$idx++;
}
}
}
?>
会做到这一点的最好办法是从页面中移除所有的纯JS功能,包括他们作为外部文件,并只留下部分的PHP的人100%是什么?这是我们网站上最浪费和最慢的网页之一,所以我希望它尽可能优化,并且单独的java脚本文件使得所有的一切都更易于调试。
有没有整个JS文件无法由PHP脚本生成的原因。你可以尝试做的是将所有的js移动到一个单独的文件中 - 并让该文件带有.php扩展名。在该php内部,从头文件开始('Content-type:text/javascript');' - 现在你的整个js可以在一个单独的文件中。在主文件中,您将拥有''。当然,你需要弄清楚变量是如何被填充的。 –
也许你可以得到这些变量内容作为一个单独的Ajax请求? – blottedscience
我希望他们分开的原因是我试图缩小HTML输出,并打破了JS;事实证明,JS并不是100%有效,孤立的问题是困难的,通常我宁愿保持网站尽可能模块化。这也是额外的800多行客户端永远不能缓存,这个页面是一个性能问题。将单独的页面制作成一个“PHP”js文件是一个有趣的方法,我会看看我能否使它工作,尽管它不能解决无法缓存的问题。现在我试图将没有php代码的位分离到文件中。 –