暂停PHP直到javascript完成的事件/功能

时间:2014-03-28 18:00:19

标签: javascript php

以下是我的代码:

<script type="text/javascript">
function SaveToDisk(fileUrl, fileName) {
    var hyperlink = document.createElement('a');
    hyperlink.href = fileUrl;
    hyperlink.target = '_blank';
    hyperlink.download = fileName || fileUrl;

    var mouseEvent = new MouseEvent('click', {
        view: window,
        bubbles: true,
        cancelable: true
    });

    hyperlink.dispatchEvent(mouseEvent);
    (window.URL || window.webkitURL).revokeObjectURL(hyperlink.href);
}
</script>

</head>

<body>
<?php
$newtarget = "0C004B290BF2D95F";
$filename = 'C:/Users/FOO/Downloads/'.$newtarget.'.txt';

if (file_exists($filename)) {
    unlink($filename);
} 

?>
<script type="text/javascript">
    SaveToDisk('http://www.ticketmaster.com/json/resale?command=get_resale_listings&event_id=<?php print $newtarget; ?>','<?php print $newtarget; ?>.txt')
</script>
<?php

$newlink = file_get_contents('C:\\Users\\FOO\\Downloads\\'.$newtarget.'.txt');

当文件被删除时,file_get_contents php函数在SavetoDisk重写磁盘上的文件之前运行。

  

&#34;无法打开流:没有这样的文件或目录&#34;。

当我不删除文件时,它可以正常工作。我试着在调用javascript函数后立即插入sleep(10),但仍然得到了错误,莫名其妙地在10秒后写了文件......有什么提示吗?

2 个答案:

答案 0 :(得分:0)

PHP由您的服务器处理,而Javascript由用户的浏览器处理,因此无论您如何在同一个.php文档中订购函数,Javascript将始终在PHP处理后运行。

如果您需要在执行Javascript后运行PHP,请查看jQuery的post函数以从您的Javascript调用PHP文件。我强烈建议您查看一些在线学习工具,例如codecademy,以便更好地掌握PHP / JS。

答案 1 :(得分:0)

你不能这样做。 PHP在服务器上执行,JavaScript在客户端(Web浏览器)上执行。

右键单击您的Web浏览器,然后选择“查看源”以检查内容。你不会在那里看到你的PHP。