사이트의 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 %를 떠날 수 있을까요 뭐야? 이것은 사이트에서 가장 낭비적이고 느린 페이지 중 하나이므로 가능한 한 최적화되도록하고 별도의 자바 스크립트 파일을 사용하면 모든 것을 디버그하기가 더 쉬워집니다.
전혀있어 이유는 JS 파일 전체가 PHP 스크립트에 의해 생성 될 수없는 이유입니다. 당신이 할 수있는 일은 모든 js를 별도의 파일로 옮기고 그 파일을 .php 확장자로 사용하는 것입니다.그 PHP 내부에서'header ('Content-type : text/javascript');로 시작하십시오. 이제 전체 js가 별도의 파일에있을 수 있습니다. 메인 파일에는''이 있습니다. 물론 변수가 채워지는 방법을 정해야합니다. –
어쩌면 이러한 변수 내용을 별도의 Ajax 요청으로 가져올 수 있습니까? – blottedscience
나는 그것들을 분리시키려는 이유는 HTML 출력을 축소하려고 시도하고 JS를 부러 뜨렸다. JS가 100 % 유효하지 않으며 문제를 격리시키는 것이 어렵다는 것을 알면 일반적으로 사이트를 가능한 모듈 식으로 유지합니다. 클라이언트가 캐시 할 수없는 추가 800 개 이상의 행이기도하며이 페이지는 성능 문제입니다. 별도의 페이지를 "PHP"js 파일로 만드는 것은 흥미로운 접근 방법이며 캐시 할 수없는 문제를 해결하지는 않지만 제대로 작동하는지 확인할 것입니다. 지금은 PHP 코드가없는 비트를 파일로 분리하려고합니다. –