java 可以一次请求多次返回数据吗?

java 可以一次请求多次返回数据吗?,第1张

这和java本身没太大关系,一次调用只会有一个返回的数据,哪怕是异步轮询,里面实际上也是多次异步调用才能多次拿到返回

不知道你是不是想使用callback的模式,将callback实例(或者利用lambda表达式)传入到某个方法中可能能达到你的目的

给题主两种思路参考:

1、内置一个浏览器内核

内置浏览器就是在抓取的程序中,启动一个浏览器内核,使我们获取到 js 渲染后的页面,这样我们就跟采集静态页面一样了。这种工具常用的有以下三种: - Selenium - HtmlUnit - PhantomJs

这些工具都能帮助我们解决数据异步加载的问题,但是他们都存在缺陷,那就是效率不高而且不稳定。

2、反向解析

什么是反向解析法呢?我们 js 渲染页面的数据是通过 Ajax 的方式从后端获取的,我们只需要找到对应的 Ajax 请求连接就 OK,这样我们就获取到了我们需要的数据,反向解析法的好处就是这种方式获取的数据都是 json 格式的数据,解析起来也比较方便,另一个好处就是相对页面来说,接口的变化概率更小。同样它有两个不足之处,一个是在 Ajax 时你需要有耐心有技巧,因为你需要在一大推请求中找到你想要的,另一个不足的地方就是对 JavaScript 渲染的页面束手无策。

Ajax,利用jQuery的ajaxform

第一步:先增加一个表单

<form id="myForm" action="comment.php" method="post">

Name: <input type="text" name="name" />

Comment: <textarea name="comment"></textarea>

<input type="submit" value="Submit Comment" />

</form>

第二步:jquery.js和form.js文件的包含

<head>

<script type="text/javascript" src="path/to/jquery.js"></script>

<script type="text/javascript" src="path/to/form.js"></script>

<script type="text/javascript">

// wait for the DOM to be loaded

$(document).ready(function() {

// bind 'myForm' and provide a simple callback function

$('#myForm').ajaxForm(function() {

alert("Thank you for your comment!")

})

})

</script>

</head>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11619959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存