要导入js文件很简单...只需使用>脚本src ='file.js'type ='text / javascript'>> / script> 。
但随后源代码将显示该文件内容的直接URL。
内容应该是可执行的,但不能通过使用源URL直接查看 使用AJAX将file.js的内容加载到内存的最佳方法是什么。
我来到以下最初的工作方式(只是和想法,完全有缺陷?):
function get_contents() {
-> ajax execute PHP {copy 'file.js' to 'token.js' in tmp-directory}
-> ajax get contents of 'tmp/token.js' and load to memory
-> ajax execute PHP {delete 'tmp/token.js' in tmp-directory}
return(true); // content (ie. functions) should now be usable
}
但我不确定第二个ajax excute是否足以让现在能够成功调用这些函数
PHP返回内容,但javascript'ajax success'可能会看到它(并将其存储)为变量... doh!
这个ajax成功的想法是否会起作用?
有人可以提出更好的建议吗?
修改
根据最初的反应,这种工作方式实际上是人类不可能的
将通过以“正常”不受保护的方式加载常用函数来解决它,并使用Jerry的建议(请参阅注释)进行较少发生的计算。
编辑#2:
下面提到的(耗时的)问题可以通过下面的模板来解决
仍在使用建议的“隐藏的PHP代码”方法
我正在使用缓冲区(或一些东西),比如Youtube视频......除了“视频数据”是“来自AJAX-PHP函数的结果”。
AJAX request "30 cycle", "60 cycle", "300 cycle", "600 cycle"
store result to buffer
initiate "start cycle"
function cycle() // run every second !!
{
//do stuff... no AJAX needed
//do some more stuff... like animations and small calculations
//per 30 cycle (30 seconds)
if ($cycle==30)
{
perform last "30 cycle" AJAX result [PHP-function set "A"]
... when finished: AJAX request "30 cycle"
store result to buffer in 'background'
}
//per 60 cycle (1 minute)
if ($cycle==60)
{
perform last "60 cycle" AJAX result [PHP-function set "B"]
... when finished: AJAX request "60 cycle"
store result to buffer in 'background'
}
//and so on....
}
初始问题99%已解决(-1因为开发人员工具) 感谢您的评论和建议。
答案 0 :(得分:1)
即使您将JavaScript文件拆分为许多单独的函数,也只需要很少的工作就可以将它们全部重新组合在一起。
使用现代浏览器,即使文件“加载到内存中”,您也可以确切地看到加载的内容。
尝试使用浏览器附带的开发人员工具,您可以使用它们查看何时进行Ajax调用,确切地说是以文本格式加载的内容。
如果您正在混合PHP和JavaScript,那么您应该在PHP代码中放置任何敏感内容,同时使用JavaScript来呈现PHP提供的结果。
编辑:根据您的更新,您可以不执行此操作而不是执行“周期”吗?
function pollAjax()
{
$.ajax({
-- ajax settings --
}).success(function(data) {
// do something with our results
doSomething(data);
// Fire again to get the next set of results.
setTimeout(function() {pollAjax()}, 10);
});
}
这意味着您不太可能使用1000个待处理的ajax请求挂起浏览器它会询问结果,当它获得结果时,它会要求下一组结果。