- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在构建一个 Web 应用程序,它需要使用 jquery ajax shortform 一次进行大约 28000 个数据库调用。
它顺利通过了大约 6000 次调用,但随后浏览器在浏览器控制台中给出了大约 20000 次以下错误(每次调用一个):
POST(我的数据库调用)net::ERR_INSUFFICIENT_RESOURCES
有谁知道如何解决这个问题?也许创建一个缓冲区或什么的?
谢谢!
编辑 1:添加一些代码:
好吧,所以用户会填写一些值(比如 GHI > 4500,纵横比在 157.5 和 202.5 之间)
将进行以下调用:
loadAllData('ghi', 4500, findIdealPoints);
这个调用导致了这个函数:
function loadAllData(type, above, callback){
var data = {};
$.post('php/getIdealData.php?action=get&type='+type+'&above='+above, data, callback);
在 PHP 中运行此查询:
"SELECT `GHI` , `lat` , `long`
FROM solar
WHERE `GHI` >'{$_GET['above']}' ORDER BY `lat`,`long`;";
它以 JSON 格式返回一个数组中的大约 28880 条记录,并调用执行以下操作的回调方法:
function findIdealPoints(data){
var i = 0;
while (i < data.length){
loadAspectWithinRange('aspect', data[i]['lat'], data[i]['long'], 10, compareWithAspect);
i++;
}
运行这个 php 查询:
"SELECT `aspect`,
`lat`, `long`, distance_in_km
FROM (
SELECT `aspect`, `lat`, `long`,r,
(6378.10 * ACOS(COS(RADIANS(latpoint))
* COS(RADIANS(`lat`))
* COS(RADIANS(longpoint) - RADIANS(`long`))
+ SIN(RADIANS(latpoint))
* SIN(RADIANS(`lat`)))) AS distance_in_km
FROM aspect
JOIN (
SELECT '{$_GET['lat']}' AS latpoint, '{$_GET['long']}' AS longpoint, 10.0 AS r
) AS p
WHERE `lat`
BETWEEN latpoint - (r / 111.045)
AND latpoint + (r / 111.045)
AND `long`
BETWEEN longpoint - (r / (111.045 * COS(RADIANS(latpoint))))
AND longpoint + (r / (111.045 * COS(RADIANS(latpoint))))
AND `aspect`
BETWEEN '{$_GET['lowA']}' AND '{$_GET['highA']}'
) d
WHERE distance_in_km <= r
ORDER BY distance_in_km";
然后转到运行它的回调函数:
function compareWithAspect(data){
var idealPoints =[];
for (var i=0; i<data.length; i++){
idealPoints.push(new google.maps.LatLng(data[i]['lat'], data[i]['long']));
}
if (idealPoints.length > 1){
makePolygon(idealPoints)
}
}
并且 makePolygon 只是使用 Google Maps API 在 map 上绘制。
我知道它很多而且看起来很复杂,如果有人能告诉我一个更好的方法来做到这一点,我会很高兴!
再次感谢
最佳答案
你可以这样做。
function findIdealPoints(data){
var i = 0;
while (i < data.length){
loadAspectWithinRange('aspect', data[i]['lat'], data[i]['long'], 10,
compareWithAspect);
i++;
}
不是每次都进行 Ajax 调用,而是将数据对象发送到您的调用
loadAspectWithinRange('aspect',data,10,compareWithAspect)
然后在 Ajax 请求中将对象数组发送到您的服务并检索所有对象的结果,而不是一个一个地检索结果。
$.ajax({
url:"...",
data:{
attr1:'aspect',
points: data(here is the array retrieved from "getIdealData.php")
attr2: 10
},
success:function(data){
compareWithAspect(data)
}
})
在服务器端处理中,为 getIdealData.php
点上的所有元素构建一个对象数组。
这比为每个元素执行 Ajax 会更好
关于jquery - 如何避免由于太多ajax调用而导致浏览器出现内存不足错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22334933/
有人有 Comet 应用程序 .net 的任何样本吗? 我需要一个示例如何在服务器中保持客户端的连接? 最佳答案 这里也有一些不错的: http://www.frozenmountain.com/we
我想知道是否有 Yii2 专家可以帮助我了解如何最好地使用 ajax 表单与 Yii ajax 验证相结合。我想我可以在不带您阅读我所有代码的情况下解释这个问题。 我正在处理一个促销代码输入表单,用户
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
f:ajax 和 a4j:ajax 标记之间有什么显着差异吗? 我知道 Richfaces 4 中的 a4j:ajax 基于 native f:ajax JSF2 标记,添加了一些 f:ajax 中未
我已经尝试过这样但无法获取数组列表。它返回“null” var data=[]; data[0] = '1'; data[1] = '2'; $.ajax({
在教程中可以看到 jQuery.ajax 和 $.ajax 喜欢这里 http://www.thekludge.com/form-auto-save-with-jquery-serialize/ jQ
过度使用 AJAX 会影响性能吗?在大型 Web 应用程序的上下文中,您如何处理 AJAX 请求以控制异步请求? 最佳答案 过度使用任何东西都会降低性能;在必要时使用 AJAX 将提高性能,特别是如果
似乎我无法使用 Ext.Ajax.request 进行跨域 ajax 调用。看起来 ScriptTag: True 没有任何效果。 这是我的代码: {
我正在使用 Bottle 微框架(但我怀疑我的问题来自它) 首先,如果我定义了一个从/test_redirect 到/x 的简单重定向,它会起作用。所以 Bottle redirect() 在简单的情
任何人都可以指出各种 AJAX 库的统一比较吗?我已经阅读了大约十几种不同的书,我即将开始一个项目,但我对自己是否已经探索了可能性的空间没有信心。 请注意,我不是在要求“我认为 XXX 很棒”——我正
似乎使用 AJAX 的站点和应用程序正在迅速增长。使用 AJAX 的主要原因之一可能是增强用户体验。我担心的是,仅仅因为项目可以使用 AJAX,并不意味着它应该。 可能是为了 UX,AJAX 向站点/
假设我有一个可以通过 Javascript 自定义的“报告”页面。假设我有可以更改的 start_date、end_date 和类型(“简单”或“完整”)。现在 我希望地址栏始终包含当前(自定义) V
我一直在阅读 Ajax 并且希望从 stackoverflow 社区看到我是否正确理解所有内容。 因此,正常的客户端服务器交互是用户在 url 中拉出 Web 浏览器类型,并将 HTTP 请求发送到服
这可能有点牵强,但让我们假设我们需要它以这种方式工作: 我在服务器的 web 根目录中有一个 index.html 文件。该文件中的 javascript 需要向/secure/ajax.php 发出
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 去年关闭。 Improve this
我希望ajax post成功进入主页。由于某种原因,我一直做错事。知道我应该做什么来解决这个问题吗? window.APP_ROOT_URL = ""; Ajax $.ajax({ url: '#{a
我在 2 个不同的函数中有 2 个 ajax 调用。我想用.click来调用这2个函数。 func1 将数据插入数据库,然后 func2 检索数据,所以我的问题是如何等到 func1 完全完成然后只执
我试图在单击按钮后禁用该按钮。我尝试过: $("#ajaxStart").click(function() { $("#ajaxStart").attr("disabled", true);
我试图在每个 Ajax 请求上显示加载动画/微调器 我的 application.js $(document).on("turbolinks:load", function() { window.
我正在显示使用jQplot监视数据的图形。 为了刷新保存该图的div,我每5秒调用一次ajax调用(请参见下面的JavaScript摘录)。 在服务器上,PHP脚本从数据库中检索数据。 成功后,将在5
我是一名优秀的程序员,十分优秀!